Использование асинхронной функции из CronTrigger выдает ошибку «сопрограмма никогда не ожидалась»Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование асинхронной функции из CronTrigger выдает ошибку «сопрограмма никогда не ожидалась»

Сообщение Anonymous »

У меня есть бот Telegram для Python, использующий aiogram. На самом деле у меня возникли проблемы с использованием асинхронного метода внутри задания CronTrigger (BackgroundScheduler).
Я покажу вам несколько фрагментов кода:
Это часть основного бота. .py

Код: Выделить всё

manager = Manager()
scheduler = BackgroundScheduler()

bot = Bot(config.TOKEN, default = DefaultBotProperties(parse_mode = ParseMode.HTML))
dp = Dispatcher()

async def main():
print(f'{datetime.now()}: Bot started')
# Scheduler
t = CronTrigger(minute='*/1', timezone='Europe/Madrid')
scheduler.add_job(doWorkAsync, t)
scheduler.start()
...
await dp.start_polling(bot)

async def doWorkAsync():
print(f'{datetime.now()}: doWorkAsync...')
await manager.evaluate_data(bot)

if __name__ == '__main__':
try:
asyncio.run(main())
except KeyboardInterrupt:
print(f'{datetime.now()}: Bot finished')
scheduler.shutdown()
Это часть менеджера.py

Код: Выделить всё

class Manager(object):

async def evaluate_data(self, bot):
print(f'{datetime.now()}: Manager- evaluate_data')
#do some work...
await bot.send_message(chat_id, botMessage)

Проблема заключается в использовании метода doWorkAsync. При выполнении функции выдается следующая ошибка:

Код: Выделить всё

RuntimeWarning: coroutine 'doWorkAsync' was never awaited
self._do_submit_job(job, run_times)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Конечно, если я использую эту функцию вне BackgroundScheduler с помощью await doWorkAsync(), она работает.
Я нет имею большой опыт работы с asyncio и запуском циклов событий.
Я пробовал пару вещей, например asyncio.set_event_loop, asyncio.run_coroutine_threadsafe, но все безуспешно
Может ли кто-нибудь мне помочь или дать несколько советов?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -never-awa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»