我们目前正在为运行PHP的Nginx(在Centos 7上)创建高可用性集群.大多数配置已经映射,它应该在群集环境中很好地工作.
不幸的是,我们唯一不能解决的问题是cron jobs(cron作业将执行PHP代码).据我所知,cron作业分别在每个主机上执行.这意味着我们要么:
>没有一个完整的高可用性环境,在单个服务器发生故障时,另一个服务器接管并且一切仍然像以前一样工作(尽管速度较慢).
>我们运行每个cron作业并将结果保存在数据库中以确定它是否已经运行.这不是一个可行的解决方案,因为我们的一些cron作业可能需要数小时才能运行 – 这些需要在下一个工作日之前执行.
>我们找到了某种解决方案,可以执行高可用性的cron作业.
研究
看到解决方案3如何帮助我们维护高可用性环境,这是首选方法.不幸的是,我们对这些解决方案并不十分熟悉,因此我寻求您的专业知识,帮助我们找到适合我们需求的解决方案.我们对Linux机器不是很熟悉(除了Nginx服务器之外整个环境都是Windows)并且对使用这些机器知之甚少(尽管到目前为止我们已经能够解决这个问题).
选项
> Dkron
>此解决方案似乎提供简单的设置,似乎是一个不错的产品
> Chronos
>这使用多个其他实用程序来操作,包括一个实际的数据库(不理想,但可以工作)
> Rundeck
>似乎提供了许多功能,可能是此列表中最好的产品
> Rcron
>除了基于Golang之外,我对此并不太了解.
>自定义脚本:How to make cronjobs high available?
>如果没有别的办法,这是一个“如果一切都失败”的方法……
>其他选择??? – 如果您找到一些,请提供其他选项,我会在此处提供
问题
>您对不同选项的专家意见或建议是什么?
>您使用不同选项(优点/缺点)的经历是什么?
>您认为我们在基础设施中使用哪些选项? (如果需要有关我们基础设施的其他信息,请告知我们)
笔记
对此有任何帮助非常感谢.