我正在运行的代码如下。
scheduler = BackgroundScheduler()
trigger = CronTrigger(day_of_week='0-6', hour=9, minute=12, second='0')
def job2():
print('job2')
scheduler.add_job(func=job2, trigger=trigger, misfire_grace_time=120, id='task_two')
scheduler.start()
while True:
print(datetime.datetime.now())
time.sleep(5)
为什么不执行job2功能?当前时间是09:12,并且此时间在调度程序指定的时间之后的120秒内。
重要的一行是这样:
Next wakeup is due at 2020-02-22 09:12:00+0800 (in 86368.007853 seconds)
[您的本地时间似乎已经超过了每日计划的时间09:12:00,因此该作业计划在第二天运行。这就是为什么您没有看到它被执行的原因。我不知道为什么,但是您似乎对触发器的印象是,只要它在当前时间的misfire_grace_time
以内,它就会产生过去的触发时间。这不是它的工作方式。