Три способа выполнить множество задач с asyncio
Функция для примера:
async def do_it(n):
await asyncio.sleep(random.uniform(0.5, 1))
return n
1. Последовательный вызов
async def main():
for i in range(100):
result = await do_it(i)
Такой вызов имеет смысл только тогда, когда результат одной задачи требуется для вызова следующей.
Если они независимы, то это антипаттерн, так как аналогичен простому синхронному вызову по очереди.
2. Упорядоченный результат
async def main():
tasks = [do_it(i) for i in range(100)]
results = await asyncio.gather(*tasks)
Выполняет корутины конкурентно и возвращает результат в виде списка.
Полезен когда требуется получить результаты в том же порядке в котором задачи отправлены.
3. Результат по мере готовности
tasks = [asyncio.create_task(do_it(i)) for i in range(100)]
for cor in asyncio.as_completed(tasks):
result = await cor
Так же выполняет корутины конкурентно, но не гарантирует порядок. Результат возвращается по мере готовности, каждый отдельно.
Полезен когда нужно обработать любой ответ как можно скорее.
#async
«Ну где же вы, девчонки, девчонки, девчонки…?»
О, эти времена, когда были кассеты, CD-диски и плееры, а ещё школьные дискотеки с волнительными медляками 😍
Вспомнили любимые хиты наших школьных лет. А у вас какие были, помните?
Делитесь в комментариях👇, включайте на всю и заказывайте блюда из подборки «Вкусная переменка», чтобы ностальгировать было приятнее: ссылка здесь.
Кстати, на них действует суперскидка 40% при первом заказе по промокоду school_forever 🫶
#Elementaree#ВкуснаяПеременка#BackToSchool
Пофанатазировали на волнах ностальджи и сделали специальную подборку!
🍽Встречайте — «Вкусная переменка»
В ней против старых добрых столовских котлет и запеканок — наши кулинарные изыски для настоящих гедонистов 😏
🍕Пицца Маргарита на готовой основе VS Пиццы из столовки
Собираете как пазл и наслаждаетесь — быстрее, чем дождаться своей очереди в столовой.
🍝Свежая паста Маринара с чоризо VS Макарошек с сосисками
Да-да, не макарошки, а паста ручной работы с томатным соусом, чоризо и базиликом. Приготовит даже ребёнок!
🧁 Банановые мини-капкейки с кремчизом VS Пирожков с повидлом
Родители довольны чистой кухней, а дети ароматным вкусом капкейков.
И ещё много чего!
👉А чтобы погружение в воспоминания было ещё слаще, дарим -40% на первый заказ по промокоду school_forever ссылка
Смакуем и ностальгируем, друзья! Смакуем и ностальгируем 💛
#Elementaree#ВкуснаяПеременка#BackToSchool