阻塞调度器apscheduler启动前无法获取作业列表

问题描述

在开始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)) 下启动调度程序。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...