Три способа выполнить множество задач с 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
Il presidente della Regione Sicilia Renato #Schifani: “Oggi è un grande giorno per la Sicilia e per l'Italia intera, l'arresto di Matteo Messina Denaro è un colpo durissimo inflitto alla mafia. Tutti devono sapere che in questa Terra non ci possono essere spazi né di illegalità né d'impunità”.
@UltimoraPolitics
#Italia#Sicilia
❗️ Il centrodestra propone l'ex presidente del Senato, Renato #Schifani come candidato per la presidenza della Regione Sicilia
@UltimoraPolitics
Il vicepremier e ministro delle Infrastrutture, Matteo #Salvini ha invitato i governatori Roberto #Occhiuto e Renato #Schifani al dicastero di Porta Pia per discutere sul progetto del Ponte sullo Stretto tra Calabria e Sicilia
@UltimoraPolitics
La premier #Meloni ha detto che per dare "risposte celeri" ai territori colpiti dal maltempo "serve una filiera, non è una cosa che posso fare io da sola, il governo da solo" o "il ministro #Musumeci da solo, il presidente #Schifani da solo. Serve che ci lavoriamo tutti insieme, in buona fede, evitando le polemiche perché qui tutti quanti abbiamo la stessa responsabilità, lo stesso obiettivo che è dare risposta ai nostri cittadini" (ANSA)
@UltimoraPolitics24
#Italia#Sicilia
Manlio #Messina, parlamentare della maggioranza nel gruppo misto alla Camera, ha chiesto le dimissioni del presidente della Sicilia Renato #Schifani in seguito alla sconfitta referendaria.
@Osservatorioitaliano
#Italia#Sicilia
❗️Frana di Niscemi: indagati il ministro Nello #Musumeci (#FdI), il presidente Renato #Schifani (#FI) e gli ex presidenti Raffaele #Lombardo (#MpA) e Renato #Crocetta (sinistra).
@OsservatorioItaliano