Кажется, не работает misfire_grace_time - PullRequest
0 голосов
/ 20 февраля 2020

Код, который я запускаю, выглядит следующим образом.

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 секунд после времени, указанного планировщиком.

1 Ответ

0 голосов
/ 23 февраля 2020

Важная строка такова:

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

Похоже, что ваше местное время уже прошло по расписанию в 9:12:00, поэтому задание было запланировано на следующий день. , Вот почему вы не видите, как это выполняется. Я не знаю почему, но у вас, кажется, сложилось впечатление, что триггер произведет время срабатывания в прошлом, если оно находится в пределах misfire_grace_time от текущего времени. Это не так, как это работает.

...