APScheduler не может запланировать новые фьючерсы после завершения работы - PullRequest
0 голосов
/ 05 августа 2020

Я тестирую вариант использования, когда планировщик выключен и запущен, он должен выбрать все расписания, сохраненные в хранилище заданий. Когда я пытаюсь запустить расписание после выключения, я сталкиваюсь со следующей проблемой. Ниже приведена ошибка времени выполнения.

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()

Я что-то упускаю в понимании поведения

...