Почему запускаются 2 задачи apscheduler?

def test():
    print('hi')

scheduler = AsyncIOScheduler(timezone='Europe/Moscow')
job = scheduler.add_job(test, 'interval', seconds=5)
scheduler.start()

Вот такой вывод в консоли:

INFO:apscheduler.scheduler:Adding job tentatively -- it will be properly scheduled when the scheduler starts
INFO:apscheduler.scheduler:Added job "test" to job store "default"
INFO:apscheduler.scheduler:Scheduler started
INFO:apscheduler.scheduler:Adding job tentatively -- it will be properly scheduled when the scheduler starts
INFO:apscheduler.scheduler:Added job "test" to job store "default"
INFO:apscheduler.scheduler:Scheduler started

Ответы (1 шт):

Автор решения: CrazyElf

Такие проблемы обычно связаны с многопроцессностью, используемой библиотеками Питона.

Попробуйте поместить ваш код вызова шедулера в такую конструкцию:

if __name__ == '__main__':
    scheduler = AsyncIOScheduler(timezone='Europe/Moscow')
    job = scheduler.add_job(test, 'interval', seconds=5)
    scheduler.start()

И вообще возьмите за правило не оставлять у себя никакой "бесхозный" код (не помещённый в классы, функции, либо в эту конструкцию, указанную выше). Весь код, не находящийся внутри чего-то, а размещённый на первом уровне, будет повторно выполнен при запуске шедулером дополнительного процесса, который будет исполнять вашу функцию test. Что вы по-видимому и наблюдаете.

→ Ссылка