Три способа выполнить множество задач с 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
#Elezioni#Spagna
Alberto Nuñez #Feijóo (#PP|EPP): "Qual è il nostro obbligo adesso? Il nostro obbligo ora è che non si apra un periodo di incertezza in Spagna. Gli spagnoli oggi ci hanno dato fiducia e hanno anche detto a tutte le parti dell'arco parlamentare di dialogare. Come candidato del partito più votato, credo che il mio dovere sia aprire il dialogo per condurre quel dialogo dal primo minuto e cercare di governare il nostro Paese in conformità con i risultati elettorali e la vittoria elettorale."
@OsservatorioEsteri
#Spagna#Congreso
Con 172 voti favorevoli e 177 contrari, il Congreso ha respinto la seconda votazione sull'investitura di Alberto Nuñez #Feijóo (#PP|EPP) a Primo Ministro. Era necessaria la maggioranza semplice.
@OsservatorioEsteri
🇪🇸#Spagna — Francina #Armengol (#PSOE), Presidente del Congreso, annuncia che il Re Felipe VI ha designato come candidato all’investitura di Presidente del Governo Alberto Núñez #Feijóo (#PP).
@UltimoraPolitics
#Spagna#Congreso
Con 172 voti favorevoli e 178 contrari, il Congreso ha respinto l'investitura di Alberto Nuñez #Feijóo (#PP|EPP) a Primo Ministro.
Adesso, la Costituzione spagnola prevede l’avvio di un periodo di due mesi per eventuali nuovi tentativi di investitura. il Re #Filippo IV avvierà nuove consultazioni con i rappresentanti designati dai gruppi politici per cercare un nuovo candidato alla Presidenza del Governo.
@OsservatorioEsteri
#InvestiduraFeijóo
🇪🇸#Spagna — con 172 voti favorevoli e 178 voti contrari, il #Congreso respinge l’investitura di Alberto Núñez #Feijóo (#Pp).
(grafica @electo_mania)
@UltimoraPolitics24
#Spagna
Re #FIlippo VI ha dato indicazione di designare Alberto Núñez #Feijóo (#PP|EPP) come candidato all'investitura di Primo Ministro.
Adesso, la Presidente del #Congreso Francina #Armengol (#PSOE|S&D) stilerà un calendario per l'inizio del dibattito sull'investitura di Feijóo.
In caso (molto probabile ormai) Feijóo non trovi la maggioranza dei voti per poter essere eletto, si aprirà un periodo di due mesi per eventuali nuovi tentativi.
@OsservatorioEsteri