安排不发生频率冲突的 Cron 任务

安排不发生频率冲突的 Cron 任务

如果我运行了几个 cron 作业:

  1. 每一分钟
  2. 每 5 分钟
  3. 每 15 分钟
  4. 每隔一小时
  5. 在午夜

然后,在凌晨 00:00 时,我有 5 个作业同时运行。

我想添加另一项工作,我只需要“每天运行一次”——无论何时!事实上,我希望“何时”是在服务器负载最少的时候。

我怎样才能做到这一点?

答案1

其中一种方法是这样的:

  1. 每小时调用一次预期脚本。
  2. 第一次运行脚本时,检查名为 的临时文件.runTime
  3. 如果存在此类文件
    1. 解析它并从中获取24小时格式的时间。
    2. 如果当前小时等于解析的时间
      1. 删除.runTime文件并执行目标脚本
    3. 如果是不同的时间——中止执行
  4. 如果没有这样的文件并且小时为 0(午夜)
    1. 计算 0 到 23 之间的随机小时并将其写入文件

相关内容