Как вызвать asyncio.create_task() внутри asyncio.create_task()?Python

Программы на Python
Anonymous
Как вызвать asyncio.create_task() внутри asyncio.create_task()?

Сообщение Anonymous »

Я пытался одновременно выполнить 10 различных задач цикла с помощью asyncio. Все 10 задач вызывают «asyncio.create_task()» внутри своих циклов. Я не могу использовать «asyncio.run()» для всех из них, потому что эта функция блокирует вызываемый поток до тех пор, пока задача не будет выполнена. Поэтому я подумал, что могу просто обойти это, вызвав функцию с помощью «asyncio.run()», а затем внутри этой функции вызвав мои 10 циклических функций через «asyncio.create_task()». 10 циклических функций действительно вызываются, но сами они не могут использовать «asyncio.create_task()». Есть предложения по устранению этой проблемы?
Это код, который я написал для демонстрации своей проблемы:

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

async def task2():
print("Task 2 was called")

async def task1():
print("Task 1 was called")
asyncio.create_task(task2())

async def main():
print("Main was called")
asyncio.create_task(task1())

asyncio.run(main())
Печатает:

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

Main was called
Task 1 was called
Будем признательны за любые идеи и предложения :D

Подробнее здесь: https://stackoverflow.com/questions/786 ... reate-task

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