Python 3.x 如何从调度程序中提取丢失的作业

Python 3.x 如何从调度程序中提取丢失的作业,python-3.x,apscheduler,Python 3.x,Apscheduler,我正在使用BackgroundScheduler来安排我的作业 from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore jobstores = {'default': SQLAlchemyJobStore(engine=my_db_engine)} scheduler = Background

我正在使用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)

我想为经过失火时间的调度程序获取错过的作业。
调度程序.get_jobs()
将只提供未来的作业。

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

def listener(event):
    ...

scheduler.add_listener(listener, EVENT_JOB_MISSED)

一些文档。

在作业内部,我们可以使用
event.jobstore.lookup\u job(event.job\u id)
获取作业。或者有更好的方法吗?执行器不会将作业传递给作业函数,因此,除非使用传递给目标函数的预定作业id作为参数,否则目标函数无法知道作业id。感谢这些信息,我将使用预定id从侦听器访问作业