似乎misfire_grace_time不起作用

问题描述 投票:0回答:1

我正在运行的代码如下。

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)

该程序的输出如下:enter image description here

为什么不执行job2功能?当前时间是09:12,并且此时间在调度程序指定的时间之后的120秒内。

python apscheduler
1个回答
0
投票

重要的一行是这样:

Next wakeup is due at 2020-02-22 09:12:00+0800 (in 86368.007853 seconds)

[您的本地时间似乎已经超过了每日计划的时间09:12:00,因此该作业计划在第二天运行。这就是为什么您没有看到它被执行的原因。我不知道为什么,但是您似乎对触发器的印象是,只要它在当前时间的misfire_grace_time以内,它就会产生过去的触发时间。这不是它的工作方式。

© www.soinside.com 2019 - 2024. All rights reserved.