Три способа выполнить множество задач с 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
👾 Автограф-сессия для болельщиков ростера по Rainbow Six Siege на финале турнира Thunderobot x Colizeum CS2 Championship!
Хочешь пожелать парням удачи перед главным турниром в Осаде? У тебя есть уникальная возможность встретиться с Медведями, и шанс сыграть против них шоу-матч уже завтра. Не забудь взять мерч для росписи и обязательно заряди их перед SI 2025 😃
🗓 21 декабря, сбор гостей c 15:00 МСК
📌 г. Москва, комп. клуб Colizeum (Шелепихинская наб., 34к3)
Финалисты турнира Thunderobot x Colizeum сыграют в шоу-матче против нашего академического ростера VP.Prodigy в CS2, который пройдёт в 15:00 МСК. Будем ждать вас 🧡
#R6S#RainbowSix#GOGOVP#VPP
Сегодня болеем за 🐻VP.Prodigy в финале нижней сетки Myskill Pro League Season 2😃
Заключительные матчи турнира проходят в LAN-формате в Алматы, и уже в 11:00 МСК молодые Медведи сразятся в BO3-серии против Flame Sharks✊
#VPP#CS2#GOGOVP
#USA#Primarie#D
Secondo il WP, gli stretti collaboratori di Bernie #Sanders (#VPP|Sinistra) riferiscono che il Senatore sarebbe pronto a candidarsi alle primarie democratiche nel 2024, qualora il presidente in carica Joe #Biden rifiutasse di correre per la rielezione.
@UltimoraPolitics