问题描述
在开始blockingscheduler之前我无法获取作业列表,我已经有一个id为的作业
background_event_publisher
现在当我尝试添加 -
jobstores = {
'default': sqlAlchemyJobStore(url=os.environ.get("sqlALCHEMY_DATABASE_URI",None))
}
scheduler = BlockingScheduler(
daemon=True,jobstores=jobstores,timezone=pytz.utc)
scheduler.get_jobs()
给予
[]
然后
scheduler.add_job(fun,'cron',hour='09',minute='30',id='background_event_publisher',misfire_grace_time=3600)
scheduler.start()
给出错误
apscheduler.jobstores.base.ConflictingIdError: 'Job identifier (background_event_publisher) conflicts with an existing job
不明白为什么在 get_jobs() 仍然存在的时候没有得到任何东西。
解决方法
在调度程序启动之前,它只能看到临时添加的作业。它无法访问作业存储,因为作业存储仅在调度程序初始化期间初始化。如果您只需要检索此类信息而不实际运行已调度的作业,则应在暂停状态 (scheduler.start(paused=True)
) 下启动调度程序。