@vitalysokolov

Как запустить функцию через AsyncIOScheduler, чтоб она стартовала сразу, а затем через интервал?

Делаю так:
scheduler = AsyncIOScheduler(timezone=str(tzlocal.get_localzone()))
    worker = Worker(cnf)
    scheduler.add_job(worker.run, 'interval', minutes=0, id="worker_first_start")
    scheduler.add_job(worker.run, 'interval', minutes=config.interval_min+randint(0, 5), id="worker_interval_start")
    scheduler.start()
    await asyncio.sleep(10)
    scheduler.remove_job('worker_first_start')


То есть добавляю job с интервалом в 0, жду 10 секунд (без этого она не запускается), затем удаляю job.
Но в реальности она запускается дважды, т.е. один раз отработала, потом запускается ещё раз и только потом отрабатывает
scheduler.remove_job('worker_first_start')

Хотелось бы запустить её только один раз, а затем уже и интервалом.

Заодно: как можно исключить запуск вот этого таска
scheduler.add_job(worker.run, 'interval', minutes=config.interval_min+randint(0, 5), id="worker_interval_start")
в указанный диапазон времени? Например, я не хочу, чтоб она по ночам работала.
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы