集群的Crons

时间:2012-05-28 20:08:14

标签: cron cluster-computing

这是一个一直困扰着我的快速问题。我拥有五台服务器,都拥有完全相同的图像,并在负载均衡器后面运行。我想每隔半小时在这些服务器上运行一个进程重的cron。

我不想把cron放在每台机器上,因为它资源很重,会阻塞所有传入的连接30秒。另外,我并不是真的想把cron放在一台机器上,只是为了确保它是冗余的并且它将被运行。

我可能的解决方案是拥有一个运行cron的远程服务,只需访问一个可以触发它的URL;我认为这在目前是最可行的。

我真的很好奇可能有哪些其他解决方案。

谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

您可以在5台计算机上设置交错的cron作业,因此每5台计算机上每2.5小时运行一次。可能最简单的方法是安排一个作业每30分钟运行一次,并让作业本身成为一个有条件运行的脚本,具体取决于当前时间和它所在的机器。

或者,如果您有某种批处理调度系统,则可以在一个提交批处理作业的系统上运行cron作业,让调度系统选择使用哪个服务器。这样做的好处是,假设您的批处理系统正常工作,如果您的某个服务器已关闭,该作业仍应运行。您可能需要在cron作业中设置一些环境变量,以使其正确使用批处理系统。