当调度程序关闭并启动时,我正在测试用例,它必须选择作业存储中持久化的所有计划。当我试图在关闭后开始时间表时,我将面临以下问题。下面是运行时错误。
RuntimeError: cannot schedule new futures after shutdown Error submitting job "testTrigger: interval[0:00:01], next run at: ... to executor default"
代码:
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.jobstores.mongodb import MongoDBJobStore
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor
from apscheduler.schedulers.base import BaseScheduler
jobstores = {
'default': SQLAlchemyJobStore(url='sqlite:///jobs.sqlite')
}
executors = {
'default': ThreadPoolExecutor(20),
'processpool': ProcessPoolExecutor(5)
}
job_defaults = {
'coalesce': False,
'max_instances': 3
}
scheduler = BackgroundScheduler(jobstores=jobstores, executors=executors,
job_defaults=job_defaults, timezone=utc)
def testTrigger(schedule):
print("APScheduler..."+str(schedule))
scheduleList=[1,2]
//Adding List of Jobs
for schedule in scheduleList:
scheduler.add_job(testTrigger,args=[schedule],'interval',seconds=schedule,id='schedule_'+str(schedule),replace_existing=true)
if scheduler.running:
else:
scheduler.start
#scheduler.shutdown()
在理解这种行为时,我是否遗漏了什么?
发布于 2022-03-09 08:48:18
我只调用了一次start()方法。当我调用关机()时,我只是检查这是否是第一次。看起来shtudown()并没有完全停止任务,因为如果我再次插入新作业,那么这些任务在不调用start()方法的情况下执行得很好。
https://stackoverflow.com/questions/63262307
复制相似问题