Использование асинхронной функции из 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»