Три способа выполнить множество задач с 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
В 2022 году отмечается 350 лет со дня рождения Петра I. Это знаковое событие для всей страны. ПАО «Газпром» объявляет о старте инклюзивного проекта «Петровский пленэр».
⠀
Идея проекта — объединить 175 воспитанников специализированных учебных заведений Санкт-Петербурга и 175 детей работников дочерних обществ и организаций ПАО «Газпром» для создания 350 совместных творческих работ.
⠀
Отборочный тур призван определить лучших авторов от компаний Группы Газпром для участия в Проекте. Подробную информацию ищите на сайте www.gazprofakel.ru
⠀
Мы начинаем!
#газпром#газпром_факел#петровский_пленер#gazprom#gazpromfakel
🔻La mai bine de o lună de zile de la sistarea de către gigantul rus #Gazprom a livrării gazelor în regiunea transnistreană, o soluție de lungă durată pentru criza energetică provocată așa și încă nu a fost găsită.
🔻Soluţia promovată de #Moscova şi autorităţile din regiunea separatistă cu livrarea de gaze de către o firmă din #Ungaria (de fapt din #Elveţia), dar cu plata livrărilor prin intermediul unei firme din #Dubai, cu prestări de servicii și comerț, nu este nicidecum o soluţie de durată, dar a fost acceptată în final de Guvernul Republicii Moldova.
🔻Coincidență sau nu, dar cu câteva zile înainte de anunțul Gazprom-ului de sistare a livrărilor de gaze, grupul #MET, ales să livreze gaze în regiunea secesionistă, și-a deschis o firmă la #Chișinău.
Citește ancheta: https://www.rise.md/drumul-gazului-umanitar-din-rusia-in-transnistria-via-dubai-elvetia/
🎄 Мечты сбываются — особенно под Новый год! 🎄
В Свободном прошла добрая акция «Письмо Деду Морозу», в которой местное отделение партии «Новые люди» помогло исполнить самые искренние желания воспитанников специального (коррекционного) детского дома.
Ребята написали не о чём-то далёком — они мечтали поиграть в лазертаг! И это желание стало реальностью благодаря совместным усилиям и поддержке лазертаг-клуба «Лазерстрайк 28». Дети устроили настоящую тактическую игру — с азартом, командной работой и морем радости. Каждый чувствовал себя героем!
А после захватывающей битвы каждому вручили небольшой, но тёплый новогодний подарок — как напоминание о том, что о них помнят и любят.
Огромная благодарность клубу «Лазерстрайк 28» и всем, кто помог сделать этот день особенным!
Пусть новый год принесёт детям свет, заботу и ещё больше поводов для улыбок.
С наступающим! ✨
#МестноеОтделение #ВместеМыСила#НовыеЛюди #Свободный#МестныйСекретарь#ГородБудущего
#юрист#юрфак#право#агпз#гхк#gpz#gazprom#свободный#svb