【问题标题】:Synchonise Laravel Task Scheduler across multiple servers跨多个服务器同步 Laravel 任务计划程序
【发布时间】:2016-10-24 22:07:33
【问题描述】:

我有 Laravel 5.0 在负载均衡器后面运行多个 Web 服务器。我使用 laravel Scheduler 定期执行和运行命令。其中大部分不是特定于服务器的命令,而是全局的(跨所有服务器的整个应用程序)。

问题在于每台服务器都会执行每条命令 - 所以 3 台服务器意味着每小时/每分钟/任何时间运行 3 条命令。

如何在服务器之间同步执行这些命令? Laravel 有任何原生选项吗?有没有其他推荐的包?

一个想法是依靠 Laravel 通过使用基于文件的互斥体实现其无重叠功能的方式,并使用共享存储在服务器之间分发文件。可能有效,但任何延迟都是共享存储打破了这一点 - 不够可靠。

我当前的解决方法是让命令将作业触发到队列中,并将逻辑构建到作业处理程序本身中,以使用数据库在服务器之间同步自身。几乎没有优雅,但可以完成工作。

这与Laravel Task Scheduler across multiple servers without overlap有关

【问题讨论】:

标签: laravel laravel-5 webserver scheduled-tasks job-scheduling


【解决方案1】:

你试过这个jdavidbakr/multi-server-event package吗? 这个包管理多服务器配置的事件,因此只有一个服务器会触发计划的事件。

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    相关资源
    最近更新 更多