0

只是一个简单的问题,今天一直困扰着我。我拥有五台服务器,它们都具有完全相同的映像并在负载均衡器后面运行。我想每半小时在这些服务器上运行一个进程繁重的 cron。

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

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

我真的很好奇还有其他可用的解决方案。

谢谢你的时间!

4

1 回答 1

1

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

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

于 2012-05-28T20:20:20.203 回答