async как раз и задуман чтобы не дожидаться выполнения i/o операции, а делать в это время что-то еще, пока ждет ответа на операцию. i/o операция - работа с сетью, БД и т. п.
окей это я понял, но как лучше поступить в моём случае? мне нужно запускать для каждого юзера 3 таска, подождать пока они отработают, и создавать новые таски на их место
Я же тебе уже отвечал на этот вопрос. create_task возвращает Task объект и ты можешь использовать .done() и .result() https://docs.python.org/3/library/asyncio-task.html#asyncio.Task.done
провтыкал наверное, не заметил
Это сложная тема, можно использовать семафоры из asyncio чтобы одновременно не выполнялось больше 3х тасок.
Обсуждают сегодня