如何确保所有cron工作都做到了?

时间:2018-01-30 11:44:42

标签: logging

假设我们应该每分钟运行一个cron作业,我们怎么知道所有cron作业都在过去运行?在某些情况下会丢失cron作业,例如服务器关闭或在某些时候停止cron作业以进行维护。

1 个答案:

答案 0 :(得分:0)

使用日志确保这一点。

  1. 为cron作业设置start_time
  2. 完成每个cron作业后,将cron作业的时间添加到集合done_cron_job_set
  3. 根据all_cron_job_setnow,我们可以定期获取start_time。然后是missing_cron_job_set = all_cron_job_time_set - done_cron_job_time_set`
  4. 但是有一些问题。

    1. 如果我们记录每个cron作业,每年将有520000多条记录
    2. 我们应该多久检查一次丢失的cron作业?我们应该从开始时间检查所有记录还是只检查其中的一部分?
    3. 我们应该删除还是合并日志?例如2017-01-01's条记录已完成,我们是否可以使用2017-01-01: true替换2017-01-01
    4. 中的所有记录