gpt4 book ai didi

php - 跨多个服务器的 Laravel Task Scheduler 没有重叠

转载 作者:搜寻专家 更新时间:2023-10-31 20:36:40 25 4
gpt4 key购买 nike

我想知道是否有人有过使 Laravel 任务调度程序在多个服务器上不重叠工作的经验。

放在上下文中:我在负载均衡器后面有 3 个 API 服务器。我知道任务调度程序允许在单个服务器上使用 withoutOverlap 标志,但我如何在我的所有服务器上使用相同的主体?我只希望 1 台服务器运行计划任务,而其他 2 台服务器不运行它们。

据我所知,我的选择是:

从其中 2 个服务器中删除 crontab。 我的服务器是自动化的,我不想从任何服务器中删除 crontab 作业,因为这会使我的自动化构建复杂化。

编写一个包,使用数据库将任务限制为仅运行的第一台服务器。我可以做到这一点,但我想知道它是否已经完成(在谷歌上找不到任何东西)

有什么建议吗?

最佳答案

从 Laravel 5.6+ 开始,此功能开箱即用。

根据 docs您将使用 onOneServer 函数来实现它,就像这样...

$schedule->command('report:generate')
->fridays()
->at('17:00')
->onOneServer();

关于php - 跨多个服务器的 Laravel Task Scheduler 没有重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33485478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com