我正在寻找更好的解决方案来处理负载均衡环境下的cron任务。
当前情况:
- PHP应用程序运行在负载均衡器后面的3台CentOS服务器上。
- 需要定期运行的任务,但每次只能在一台机器上运行。
- 设置了传统的cron以在第一台服务器上运行这些任务。
- 如果第一个服务器因任何原因出现故障,则会出现问题。
希望达到的目标:
- 寻找更加健壮和去中心化的解决方案。
- 负载均衡任务,使多个任务仅在随机/不同的服务器上运行一次,以分担负载。
- 避免第一台服务器宕机时任务无法运行的情况。
- 能够使用Web界面管理任务和查看聚合报告。
- 通知如果出现任何问题。
解决方案不必实现在PHP中,但是如果可以这样做,那将使我们能够轻松地进行微调。
我已经找到了两个看起来很有前途的项目。 GNUBatch 和 Job Scheduler。我很可能会进一步测试两者,但我想知道是否有更好的解决方案可以解决上述问题。
谢谢。