Три способа выполнить множество задач с 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
Добрались домой, за всю поездку проехали ~2652км 💅
Тяжко ехать 4-5ч без перерыва, но приходится из-за короткого светового дня. В целом, поездка далась проще, чем думалось изначально. Много фоток с локаций «во все тяжкие», «звоните солу» и каньона
#NM
#Elezioni2022
Maurizio #Lupi (#NM): "Vedo che la lista di Noi Moderati all'interno della coalizione di centrodestra dà fastidio a molti. L'alleanza ha 4 proposte, non 3. Senza di noi non si governa."
@UltimoraPolitics
#Italia
Maurizio #Lupi, segretario di #NM|EPP e presidente Milan Club Parlamento: "Siamo di fronte ad una scelta: continuare a lamentarci per le mancate qualificazioni ed a rimpiangere gli anni d’oro in cui le nostre squadre davano spettacolo in Italia e nel mondo oppure lavorare con serietà e senza tentazioni populiste ad una riforma seria del sistema calcio"
@OsservatorioItaliano
#Italia#Sicilia
Centrodestra spiazzato dalla vittoria netta del NO in Sicilia. la #Lega chiede una riflessione politica.
Saverio Romano (#NM|EPP): “Se il centrodestra pensasse di ricandidare Lagalla bisognerebbe trovare uno psicologo”
@Osservatorioitaliano
Esclusiva Repubblica — Decreto Sud, tentato blitz della maggioranza nella notte in Commissione Bilancio alla #Camera: "centrali nucleari in Italia senza autorizzazione". Un emendamento a sorpresa dei relatori Ylenja #Lucaselli (#FdI), Mauro #DAttis (#FI) e Francesco Saverio #Romano (#NM) "autorizzava la Difesa a realizzare impianti energetici e Centri per i rimpatri senza vincoli". Il testo "ritirato dopo la rivolta delle opposizioni"
@UltimoraPolitics