高可用性 Cron 作业

ctw*_*els 8 linux high-availability cron

信息

我们目前正在为运行 PHP 的 NGINX(在 Centos 7 上)创建一个高可用性集群。大多数配置已经被映射,它应该在集群环境中可以很好地工作。

不幸的是,我们唯一无法弄清楚如何与集群配合使用的是cron 作业(cron 作业将执行 PHP 代码)。据我所知,cron 作业是在每个主机上单独执行的。这意味着我们要么:

  1. 不要有一个完整的高可用性环境,在单个服务器出现故障时,另一台服务器接管并且一切仍然像以前一样工作(尽管速度较慢)
  2. 我们运行每个 cron 作业并将结果保存在数据库中以确定它是否已经运行。这不是一个可行的解决方案,因为我们的一些 cron 作业可能需要数小时才能运行 - 这些需要在下一个工作日之前执行。
  3. 我们找到了某种能够执行高可用性 cron 作业的解决方案。

研究

看到解决方案 3如何帮助我们维护高可用性环境,这是首选方法。不幸的是,我们对其中一些解决方案不太熟悉,因此我寻求您的专业知识,帮助我们找到适合我们需求的解决方案。我们对 Linux 机器不是很熟悉(除了 NGINX 服务器之外,整个环境都是 Windows)并且对使用这些机器知之甚少(尽管到目前为止我们已经能够弄清楚)。

选项

  1. 德克朗
    • 此解决方案似乎提供了简单的设置,并且似乎是一款不错的产品
  2. 克罗诺斯
    • 这使用多个其他实用程序进行操作,包括实际数据库(不理想,但可以工作)
  3. 跑台
    • 似乎提供了很多功能,并且可能是此列表中最好的产品
  4. 遥控
    • 除了它是基于 Golang 之外,我对此知之甚少。
  5. 自定义脚本:如何使 cronjobs 高可用?
    • 这是一种“如果一切都失败了”的方法,如果没有其他方法有效......
  6. 其他选择???- 如果您找到了其他选项,请提供其他选项,我会将它们包含在此处

问题

  1. 您对不同的选择有何专家意见或建议?
  2. 您使用不同选项(优点/缺点)有哪些经验?
  3. 您认为我们将哪些选项用于我们的基础设施?(如果需要有关我们基础设施的更多信息,请告诉我)

笔记

非常感谢有关此问题的任何帮助。

我意识到之前已经问这个问题,尽管它似乎已经过时了(2011 年)并且已经创建了许多新的解决方案。

小智 1

我使用Jenkins管理大约 140 个预定脚本。

Jenkins 并不是作为 cron 的替代品而被设计成服务器的,而是为了持续集成,但你可以用他来管理几乎所有事情。

这里有一些人(就像我一样)成功地将工作从 cron 转移到 Jenkins

这是Jenkins 和 cron 之间的一个很好的比较