linux – 高可用性Cron Jobs
信息 我们目前正在为运行PHP的NGINX(在Centos 7上)创建高可用性集群.大多数配置已经映射,它应该在群集环境中很好地工作. 不幸的是,我们唯一不能解决的问题是cron jobs(cron作业将执行PHP代码).据我所知,cron作业分别在每个主机上执行.这意味着我们要么: >没有一个完整的高可用性环境,在单个服务器发生故障时,另一个服务器接管并且一切仍然像以前一样工作(尽管速度较慢). 研究 看到解决方案3如何帮助我们维护高可用性环境,这是首选方法.不幸的是,我们对这些解决方案并不十分熟悉,因此我寻求您的专业知识,帮助我们找到适合我们需求的解决方案.我们对Linux机器不是很熟悉(除了NGINX服务器之外整个环境都是Windows)并且对使用这些机器知之甚少(尽管到目前为止我们已经能够解决这个问题). 选项 > Dkron >此解决方案似乎提供简单的设置,似乎是一个不错的产品 > Chronos >这使用多个其他实用程序来操作,包括一个实际的数据库(不理想,但可以工作) > Rundeck >似乎提供了许多功能,可能是此列表中最好的产品 > Rcron >除了基于Golang之外,我对此并不太了解. >自定义脚本:How to make cronjobs high available? >如果没有别的办法,这是一个“如果一切都失败”的方法…… >其他选择??? – 如果您找到一些,请提供其他选项,我会在此处提供 问题 >您对不同选项的专家意见或建议是什么? 笔记 对此有任何帮助非常感谢. 我意识到这个问题已被问到before,虽然它看起来已经过时(2011年),并且已经创建了许多新的解决方案. 解决方法为什么不是你的选项(2),但它在执行时会创建一个标志. cron作业将在所有机器上启动,轻微的本地时序变化意味着其中一个首先创建标志;其他人然后看到旗帜设置和纾困,而第一次运行完成.您需要注意标志设置/检查的原子性(此处NFS也是一个选项,带有锁定文件),但为了将其保持在最低限度,可能还有一些值 >在每个cron作业开始时进行一次小的随机睡眠,以便稍微展开它们,或者>在服务器之间将任何给定作业的开始时间改变至少1分钟,即服务器1在7:02开始作业,服务器2在7:03开始;通常服务器1将执行整个作业,但如果它已关闭,服务器2将在7:03开始时看不到标志. (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |