Python APScheduler: остановить планировщик от вызываемого метода - PullRequest
0 голосов
/ 06 апреля 2020

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

Я нашел решение, которое работает, но я не уверен, что это правильно.

В настоящее время я передаю в вызываемые методы планировщик. При необходимости метод вызывает scheulder.remove_all_jobs ()

Main:

    scheduler = BackgroundScheduler()
    # schedule tasks every minute
    scheduler.add_job(
            lambda: loop(scheduler),
            'interval',
            minutes=1
        )
    scheduler.start()

Вызываемый метод:

def loop(scheduler):
    # to stuff
    if condition:
        # stop future tasks from being executed
        scheduler.remove_all_jobs()
        #scheduler.shutdown()

Нужно ли вызывать функцию отключения?

...