Python 似乎失火,时间不起作用

Python 似乎失火,时间不起作用,python,apscheduler,Python,Apscheduler,我正在运行的代码如下所示 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(

我正在运行的代码如下所示

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,因此作业计划在第二天运行。这就是为什么你没有看到它被执行的原因。我不知道为什么,但你似乎觉得只要触发器在当前时间的
失火\u grace\u time
范围内,它就会在过去产生一个开火时间。这不是它的工作原理。

您可以使用记录器显示更多数据吗?应该看到日志消息,如“作业运行时间”job2((触发器:cron[day_of u week='0-6',hour='18',minute='46',seconds='0',,下次运行时间:'YYYY-MM-DD hh:MM:ss TZTZ')被hh:MM:ss.ffffff'@cowbert遗漏。我可以问一下日志中打印了什么来查看您提到的信息吗。