Schdeuling заданий после вызова .start () APscheduler - PullRequest
0 голосов
/ 31 октября 2019

Я пишу программу для планирования и отмены сигналов тревоги во Flask. Я использую библиотеку apscheduler для синхронизации.

Мне нужно иметь возможность добавлять события в очередь заданий в любой момент, поэтому я должен иметь возможность добавлять события после запуска планировщика.

В настоящее время у меня есть:

from apscheduler.schedulers.background import BackgroundScheduler

def cancel():
    job = events[0]
    job.remove()


def schedule():
    sched = scheds[0]
    try:
        sched.shutdown()
    except:
        pass
    job = sched.add_job(my_job, 'date', run_date=t, args=['text'])
    events.append(job)
    sched.start()


def schedule2():
    sched = scheds[0]
    try:
        sched.shutdown()
    except:
        pass
    job = sched.add_job(my_job, 'date', run_date=t2, args=['text'])
    events.append(job)
    sched.start()

Где scheds - это массив для хранения глобального планировщика, а events - это массив, в котором хранятся запланированные события.

Мне нужноЗапустите расписание, затем расписание2, чтобы запланировать две разные работы. Когда я пытаюсь это сделать, я получаю сообщение об ошибке, в котором говорится, что я не могу запустить schedule2, потому что «планировщик уже запущен». Как мне этого добиться?

...