Три способа выполнить множество задач с 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
AGI - Ammontano a oltre 17 milioni di euro le frodi sul bonus cultura, secondo un rapporto della Guardia di finanza che sintetizza i risultati delle indagini effettuate su #18App dal 2018 al 2020
@UltimoraPolitics
Matteo #Renzi:"La maggioranza della #Meloni vuole cancellare la #18App. Follia! Ma perché hanno così paura della cultura e dei giovani? Io sono pronto anche all’ostruzionismo parlamentare. Ma chiedo a tutti di darci una mano. Dovranno fermarsi loro, non noi" e lancia una petizione.
@UltimoraPolitics
Matteo #Renzi (#IV) : "Il Ministro Sangiuliano mente sapendo di mentire. I soldi per la #18App sono stati del tutto cancellati e azzerati. Basta leggere il bilancio, anziché le veline del Minculpop, per capire che c'erano 230 milioni di euro nel 2022 e ci saranno zero euro nel 2023. Forse nel 2024 arriverà una nuova card, diversa. Ma quest'anno Sangiuliano ha cancellato i fondi per la cultura giovanile e li ha regalati ai presidenti delle squadre di serie A che hanno ricevuto 890 milioni di €”
@UltimoraPolitics
#BonusCultura, trovata intesa con i gruppi di maggioranza: dalla #18App si passa alla Carta cultura e alla Carta del merito, cumulabili tra loro. Dal prossimo gennaio, al compimento del 18° compleanno, i ragazzi e le ragazze di una famiglia con Isee fino a 35 mila euro avranno diritto a un bonus di 500 euro. Anche coloro che saranno promossi alla maturità con 100/100 potranno accedere alla misura, a prescindere dal reddito. Per la misura sono stati stanziati 190 milioni di euro. Il presidente della commissione Cultura della #Camera, Federico #Mollicone (#FdI): "Sulla cultura il centrodestra non lascia ma raddoppia"
@UltimoraPolitics