我有Laravel 5.0在負載均衡器後面運行多個Web服務器。我使用laravel Scheduler來定期執行和運行命令。其中大部分不是特定於服務器的命令,而是全局(跨所有服務器的整個應用程序)。Synchonise跨多個服務器的Laravel任務計劃程序
問題是,每個服務器將執行每個命令 - 所以3個服務器意味着3個命令每小時/分鐘/任何運行。
如何在服務器之間同步執行這些命令? Laravel是否有任何本地選項?任何其他軟件包推薦?
發生的一個想法是依賴Laravel通過使用基於文件的互斥鎖實現其withoutOverlapping功能的方式,並使用共享存儲在服務器之間分發文件。可能工作,但任何延遲都是共享存儲打破了這一點 - 不夠可靠。
我目前的解決方法是讓這些命令將作業激發到隊列中,並將邏輯構建到作業處理程序本身以使用數據庫在服務器之間進行自我同步。非常優雅,但完成工作。
這與Laravel Task Scheduler across multiple servers without overlap
[Laravel任務計劃程序跨多個服務器可能重複沒有重疊](http://stackoverflow.com/questions/33485478/laravel-task-scheduler-across-multiple-servers-without-overlap) –