Dan*_*iel 5 php laravel laravel-5.2
我想知道是否有人有让 Laravel 任务计划程序在不跨多个服务器重叠的情况下工作的经验。
把它放在上下文中:我在负载均衡器后面有 3 个 API 服务器。我知道任务调度程序允许在单个服务器上使用 withoutOverlap 标志,但是我如何在所有服务器上使用相同的主体?我只希望 1 台服务器运行计划任务,而其他 2 台服务器不运行它们。
据我所知,我的选择是:
从 2 个服务器中删除 crontab。 我的服务器是自动化的,并且不想从任何服务器中删除 crontab 作业,因为这会使我的自动化构建复杂化。
编写一个包,使用 DB 将任务限制为仅运行的第一台服务器。 我可以这样做,但我想知道它是否已经完成(在谷歌上找不到任何东西)
有什么建议吗?
从 Laravel 5.6+ 开始,此功能就可用。
根据文档,您将使用该onOneServer函数来实现它,就像这样......
$schedule->command('report:generate')
->fridays()
->at('17:00')
->onOneServer();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2388 次 |
| 最近记录: |