@Maxwell012

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

Делаю бота для тг. Надо что бы админу каждые 30 секунд отправлялась обновленная статистика по ответам. Код:
async def statistics_question(message):
    await bot.send_message(admin_id, f'YES --- {amount_yes}\n'
                                     f'NO --- {amount_no}')
    if amount_yes >= 2:
        bot.send_message(admin_id, 'Набралось 2 или больше человека')
        return
    threading.Timer(30.0, await statistics_question(message)).start()

В результате, 30 секунду не ждет. Думаю что это связанно с асинхронной функцией, но не знаю как.
Как можно подправить код? и почему так происходит?
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
dabudi
@dabudi
2*2=5
Зачем async если библиотеки для тг ботов и так все асинхронные?
Убери async и используй time.sleep или cron из библиотеки apscheduler
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы