await asyncio.sleep(1)
print(f'{task_no}: ... Готово!')
async def main():
taskA = loop.create_task (async_func('taskA'))
taskB = loop.create_task(async_func('taskB'))
taskC = loop.create_task(async_func('taskC'))
await asyncio.wait([taskA,taskB,taskC])
if name == "__main__":
try:
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
except :
pass
что здесь не так?
> DeprecationWarning: There is no current event loop
loop = asyncio.get_event_loop()
ты практически сам же и ответил на свой вопрос
ну просто странно, ибо этот код представлен как пример. Полагаю, его запуск не должен сопровождаться ошибками. Но это не так… вот я и хочу понять: что здесь не так? Кто-то накосячил, где писал этот пример или..?
уже давно есть asyncio.run
то есть, это неактуальный на сегодняшний день пример?
откуда ты его взял?
ох… на каком-то сайте вроде pythonru com или python-scripts
1. начиная с 3.10 функция get_event_loop обозначена как устаревшая. 2. ты должен запускать event loop в общем случае при помощи asyncio.run. 3. чем тебя asyncio.gather не устроил вместо ручного создания тасков в main? 4. чтобы получить инстанс event loop тебе нужно использовать get_running_loop, при условии что он уже запущен.
Обсуждают сегодня