如果我运行了几个 cron 作业:
- 每一分钟
- 每 5 分钟
- 每 15 分钟
- 每隔一小时
- 在午夜
然后,在凌晨 00:00 时,我有 5 个作业同时运行。
我想添加另一项工作,我只需要“每天运行一次”——无论何时!事实上,我希望“何时”是在服务器负载最少的时候。
我怎样才能做到这一点?
答案1
其中一种方法是这样的:
- 每小时调用一次预期脚本。
- 第一次运行脚本时,检查名为 的临时文件
.runTime
。 - 如果存在此类文件
- 解析它并从中获取24小时格式的时间。
- 如果当前小时等于解析的时间
- 删除
.runTime
文件并执行目标脚本
- 删除
- 如果是不同的时间——中止执行
- 如果没有这样的文件并且小时为 0(午夜)
- 计算 0 到 23 之间的随机小时并将其写入文件