Три способа выполнить множество задач с 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
“Siamo svegli dalle due del mattino ora venezuelana per seguire quanto sta accadendo. Accompagniamo il nostro popolo con la #preghiera”. Mons. Jesús González de Zárate, Arcivescovo di Valencia e presidente della Conferenza Episcopale Venezuelana, commenta così al Sir l’attacco notturno compiuto dagli Stati Uniti alle principali sedi istituzionali e militari a #Caracas. Dopo settimane di tensioni, con le forze statunitensi al largo del #Venezuela con il pretesto della lotta ai trafficanti di droga, il presidente #Trump ha deciso stanotte di attaccare il Venezuela sferrando un raid aereo sulla capitale Caracas, culminato con la cattura de presidente venezuelano Nicolas Maduro: insieme alla moglie “sono stati portati fuori dal Paese”, ha scritto Trump sul social Truth. Il risveglio del popolo venezuelano sarà probabilmente stupito e attonito ma, conferma il presidente dei vescovi, “i fatti sono in pieno sviluppo per poterli valutare”. Monsignor Azuaje ci tiene per il momento a sottolineare “fiducia in Dio e nei valori del nostro popolo”.
"Ordine e #sicurezza sono doni che costano sacrificio a chi li garantisce e che però contribuiscono notevolmente al bene di tutti. Un ambiente sicuro è infatti di grande aiuto alla #preghiera". Lo ha detto Papa #LeoneXIV ricevendo questa mattina, nella Sala Clementina del Palazzo Apostolico, in Vaticano, i dirigenti e gli agenti dell'Ispettorato di Pubblica Sicurezza "Vaticano" nella consueta udienza all'inizio dell'anno.
Presenti, in prima fila, tra gli altri, il Capo della #Polizia, Vittorio Pisani, il Questore e il Prefetto di #Roma, Roberto Massucci e Lamberto Giannini, ed il direttore dell’Ispettorato di Pubblica sicurezza “Vaticano” Antonino Messineo.
"Desidero particolarmente ringraziarvi per quanto avete fatto nel corso del #Giubileo appena concluso, come pure in occasione della morte del compianto Papa Francesco, dei suoi funerali e poi del #Conclave. In quei giorni intensi, che hanno certamente messo alla prova anche le vostre forze, avete saputo tenere il passo con eventi susseguitisi con grande rapidità, a volte programmati e altre volte imprevedibili, assicurando che tutto si svolgesse con ordine e dimostrando, come sempre, spirito di sacrificio, professionalità, duttilità e discrezione", le parole del Pontefice.
"In merito a questo, un pensiero di ringraziamento va anche ai vostri cari che, in modo indiretto, si sono trovati a loro volta coinvolti in queste dinamiche, adattandosi alle esigenze dei vostri impegni e turni straordinari di lavoro e, immagino, rinunciando spesso alla vostra presenza", ha aggiunto il Santo Padre, che ha concluso facendo sue le parole di Benedetto XVI: "Sia la vostra presenza, cari amici, una garanzia sempre più valida di quel buon ordine e di quella tranquillità, che sono fondamentali per costruire una vita sociale pacifica e composta, e che, oltre a esserci insegnati dal messaggio evangelico, sono segno di autentica civiltà. Affidandovi alla materna protezione di Maria Santissima e di San Michele Arcangelo, assicuro la mia preghiera per voi e per le vostre famiglie".