如何从调度程序中获取错过的工作

how to fetch missed jobs from scheduler

我正在使用 BackgroundScheduler 调度程序来安排我的作业。

from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore

jobstores = {'default': SQLAlchemyJobStore(engine=my_db_engine)}
scheduler = BackgroundScheduler(jobstores=jobstores)

job = scheduler.add_job(my_job, run_date=some_future_time, misfire_grace_time=60)

我想为已通过 misfire_grace_time 的调度程序获取错过的作业。 scheduler.get_jobs() 只会提供未来的工作。

不确定您真正想要的是什么,但您可以为错过的工作添加一个侦听器:

def listener(event):
    ...

scheduler.add_listener(listener, EVENT_JOB_MISSED)

一些文档here