我有一个函数可以执行cron作业为
def add_config_job(sched, job):
module = JOB_METHODS.get(job["type"])
if module is None:
logging.warn("job type %r not supported", job["type"])
return
func = module.cron_job
args = (job,)
name = "%s__%s" % (job["name"], job["id"])
start_date = job.get("start_date")
run_at = job["run_at"]
if isinstance(job["run_at"], dict):
sched.add_cron_job(func, args=args, name=name, start_date=start_date,
**run_at)
elif isinstance(job["run_at"], basestring):
sched.add_date_job(func, args=args, name=name, date=run_at)
else:
logging.warn("unsupported 'run_at' type (%s given)", run_at)
,我将错误作为错过的工作,
2015-05-14_00:00:02.76629 WARNING: Run time of job "Daily VPN Connexion__1 (trigger: cron[day='*', hour='0', minute='0', second='0'], next run at: 2015-05-14 00:00:00)" was missed by 0:00:02.493426
2015-05-14_00:00:02.79309 WARNING: Run time of job "Daily Report VPN Connection ALIGRO__1 (trigger: cron[day='*', hour='0', minute='0', second='0'], next run at: 2015-05-14 00:00:00)" was missed by 0:00:02.777450
这项工作的原因是什么原因?我们如何避免它?在某些页面中,我发现将misfire_grace_time从1秒的默认值增加。如果不丢失它,不应该在适当的时间内进行调度程序吗?
似乎您的过程太忙了,无法及时启动工作。misfire_grace_time
选项将在不再相关后防止工作射击。如果需要在某个确切的时间发生某些事情,并且延迟了太多,那就根本不应该发生。如果发生这种情况,则增加misfire_grace_time
是解决方案,并且您不在乎准确性。