Три способа выполнить множество задач с 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
#Italia
#Volt|G/EFA annuncia la sua partecipazione alle primarie della coalizione progressista: “Ci saremo per cambiare le regole del gioco. Serve una squadra, non leader soli al comando”.
Volt ha inoltre annunciato l’inizio di un percorso di ascolto sul territorio, per incidere sul programma di coalizione, mettendo al centro la crisi abitativa, la transizione energetica e azioni per ridurre la precarietà.
Tra le proposte anche quella di modificare il sistema di voto delle primarie, introducendo il voto supplementare (dove l’elettore indica una prima e una seconda scelta per garantire una convergenza immediata sul candidato più condiviso) o il sistema del STV.
@OsservatorioItaliano
#Italia
Nota #Volt|G/EFA: "Riteniamo uno squallido teatrino l'intervista di #Lavrov a Zona Bianca, su Rete4. Il fatto che venga permesso al ministro degli esteri russo di divulgare la propaganda russa in prima serata è squalificante per l'intero giornalismo televisivo italiano."
@UltimoraPolitics
#Italia
Gianluca #Guerra (#Volt|G/EFA): "Ius Scholae salta da calendario della Camera per colpa della Lega che ancora una volta si dimostra capace di raggiungere risultati solo quando si devono negare diritti civili e umani. È anche chiaro che questa maggioranza non potrà mai portare progresso sociale."
@UltimoraPolitics
#Italia#UE
Gianluca #Guerra (#Volt|G/EFA): "Con le dimissioni di Fabrice Leggeri, forse finalmente capiremo che c'è qualcosa che non va con Frontex e si inizierà ad agire.
Pushback illegali, mancata trasparenza sugli atti, procedure forzate. Tutto questo giocando con la vita di migliaia di esseri umani."
@UltimoraPolitics
#UE
Francesca Romana #DAntuono, copresidente #Volt|G/EFA: "Vogliamo creare una rivoluzione nel Parlamento Europeo: 25 membri di Volt da almeno 7 paesi invaderanno il Parlamento. Persone di ogni genere, etnia, origine, orientamento sessuale, disabilità o background sociale: insieme aggiusteremo l'UE."
@UltimoraPolitics
#UE
Francesca Romana #DAntuono, copresidente #Volt|G/EFA: "Putin ha invaso l'Ucraina, uccidendo civili innocenti e commettendo indimenticabili crimini contro l'umanità. Non staremo a guardare l'invasione."
@UltimoraPolitics
#UE#Ucraina
🇺🇦 Mykhaylo #Pobigay (#Volt|G/EFA): "L'Unione Europea ha bisogno di più integrazione, di nuovi membri e di un esercito europeo."
@UltimoraPolitics