同一分钟有多个 Cron

同一分钟有多个 Cron

我正在网络服务器上安装一堆 Magento 商店。每个网站都有一个 cron 作业,Magento 使用它来更新其内容——需要 3-4 秒才能完成。说明告诉将其设置为每 5 分钟运行一次。

我问自己,出于性能原因,是否建议将每个 cron 设置为在不同的分钟运行(例如:第一个网站在第 0、5、10 分钟等运行,第二个网站在第 1、6、11 分钟等运行,依此类推),以减少重叠,或者这是否无用,因为 Linux 按顺序在同一分钟执行多个 cron 作业,避免并发。

答案1

依赖于取决于。

如果同时运行这些 cron 作业没有问题,那么它们就不会通过覆盖彼此的文件等而互相干扰……并且如果您的机器可以处理峰值负载,您可以同时运行它们。

如果您不想增加服务器负载,并且脚本处理良好(不依赖于运行时间),那么您可以在不同的分钟内运行它们。此外,如果您想在执行脚本sleep $(( $RANDOM%100 )); somecommand之前等待 1 到 100 秒的随机时间,您还可以为其添加一些随机性。

答案2

这里最好的做法是进行测试。

Linux 能够同时运行多个作业。根据每个作业的资源密集程度,如果同时启动多个作业,可能会出现一些争用。将它们拆分不会造成任何问题,而且肯定会减少由同时启动多个作业所导致的潜在问题。

答案3

我们的共享主机服务器在一台机器上运行最多 12 个商店 - 所有商店都在运行自己的cron任务。

这样做完全没有问题。

在运行计划方面,我们发现一些模块不能容忍以cron除整点后 5 分钟开始以外的任何时间执行。

*/5 * * * * /home/path/public_html/cron.sh

相关内容