@Dakozoff

Как запустить функцию вместе с ботом aiogram?

Приветствую. Делаю очередного бота и понадобилось запускать асинхронную функцию вместе с запуском бота, функция с условием while True, нужно чтобы бот работал и функция также, не мешая работе бота. Пишу бота на версии aiogram 2.23.1, ранее реализовывал ранее таким образом: https://imgur.com/a/QxxhnAQ . Но сейчас при таком же коде, выдает ошибку: DeprecationWarning: There is no current event loop
loop = asyncio.get_event_loop()
Оно как бы и работает, но мешает работе бота и бот не реагирует ни на что, если знает, другой вариант кода, заранее спасибо.
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Во-первых, переводим слово "warning". Это не ошибка, это предупреждение.
Во-вторых, погуглить не пробовал?
В ранних версиях asyncio get_event_loop() создавал рабочий цикл asyncio, если он ещё не был создан, и возвращал существующий, если он был. Потом от этого поведения решили отказаться. Пока что оно ещё работает, но потом сломается.
Так что в начале программы используй new_event_loop(), а если нужно получить ссылку на цикл в корутине - get_running_loop()

И я удивлюсь, если окажется, что ошибка именно в этом. У тебя где-то ещё должен быть косяк. Скорее всего одна из запускаемых корутин выполняет длительную операцию синхронно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
stiv208
@stiv208
Программист. Пока учусь, ищу работу (ну хоть что-н
Возможно поможет. Если нужно запускать какие-то действия с определенным интервалом, т.е. раз в минуту например или раз в день или 2 раз при старте программы. Можно посмотреть в сторону apscheduler (https://apscheduler.readthedocs.io/en/stable/userg...)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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