Три способа выполнить множество задач с 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 regionali in #Liguria domenica 27 ottobre (dalle 7 alle 23) e lunedì 28 ottobre (dalle 7 alle 15). Via libera della Corte di Appello di Genova alla data proposta dal presidente facente funzione della Regione, Alessandro Piana. L'ultima parola tuttavia spetta al Governo, che potrebbe decidere per l'accorpamento del voto a quello di Emilia Romagna e Umbria, il 17 e 18 novembre
@UltimoraPolitics
Regionali #Liguria: chiusi i seggi. Le prime rilevazioni di Opinio per Rai e SWG per La7 mostrano il candidato di centrodestra Marco Bucci leggermente in vantaggio. Tutti gli aggiornamenti live sul nostro canale X! #MaratonaYoutrend
https://x.com/you_trend
#Italia#Liguria#Genova
Copriremo la tribuna elettorale organizzata dalla RAI per le elezioni comunali di Genova. Il tempo disponibile è ripartito in proporzione alla grandezza dei gruppi in consiglio comunale.
@UltimoraPolitics
#Liguria, l'avvocato di #Toti: "Le dimissioni sono una decisione politica che spetta a lui dopo verifica con le persone che lavorano con lui e con le forze politiche."
@UltimoraPolitics