我运行的代码如下所示。
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秒内。
发布于 2020-02-23 16:38:03
重要的一点是:
Next wakeup is due at 2020-02-22 09:12:00+0800 (in 86368.007853 seconds)您的本地时间似乎已经超过了每天计划的时间09:12:00,所以作业计划在第二天运行。这就是为什么你看不到它被执行的原因。我不知道为什么,但你似乎有这样的印象,只要触发器在当前时间的misfire_grace_time范围内,它就会在过去产生一个触发时间。这不是它的工作方式。
https://stackoverflow.com/questions/60318471
复制相似问题