Три способа выполнить множество задач с 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
Polina Kudermetova ikkinchi davradagi bahsini oʻtkazdi
Tennis boʻyicha Oʻzbekiston terma jamoasi aʼzosi Polina Kudermetova Avstraliya ochiq chempionatidagi ishtirokini yakunladi. Ikkinchi davrada jahon tasnif jadvalida 14-oʻrinni egallab turgan daniyalik Klara Tausonga qarshi kortga chiqqan Kudermetova 3 setda imkoniyatni boy berdi.
Polina Kudermetova – Klara Tauson (Daniya) 3:6, 6:3, 5:7
—
Полина Кудерметова провела матч второго круга
Представительница сборной Узбекистана по теннису Полина Кудерметова завершила своё выступление на Открытом чемпионате Австралии. Во втором круге наша спортсменка вышла на корт против 14-й ракетки мира Клары Таусон из Дании и уступила ей.
Полина Кудерметова — Клара Таусон (Дания)
3:6, 6:3, 5:7
#Tennis#AUSOpen
👉@OlympicUz
olympic.uz I YouTube I Instagram I
Polina Kudermetova Avstraliya ochiq chempionatini gʻalaba bilan boshladi
Tennis boʻyicha Oʻzbekiston terma jamoasi a’zolari Avstraliya ochiq chempionatida qatnashayotgani haqida ma’lum qilgan edik. Bugun asosiy bosqichning 1-davrasiga start berildi. Unda ishtirok etgan hamyurtimiz Polina Kudermetova ispaniyalik raqibasini 2 setda qiyinchiliksiz magʻlub etdi.
Polina Kudermetova – Guyomar De Reales (Ispaniya) 6:2 / 6:3
Ertaga Kamilla Rahimova amerikalik Kori Gauffga qarshi kortga chiqadi.
—
Полина Кудерметова начала Открытый чемпионат Австралии с победы
Как ранее нами сообщалось, члены сборной Узбекистана по теннису принимают участие в Открытом чемпионате Австралии. Сегодня стартовал первый круг основной сетки турнира. В нём наша соотечественница Полина Кудерметова уверенно обыграла свою соперницу из Испании в двух сетах.
Полина Кудерметова – Гуйомар Де Реалес (Испания) 6:2 / 6:3
Завтра Камилла Рахимова выйдет на корт против американки Кори Гауфф.
#Tennis#AUSOpen
👉@OlympicUz
olympic.uz I YouTube I Instagram I
#ULTIMORA
Finale Australian Open, Sinner vince il quarto set (3-6 3-6 6-4 6-4). Si decide tutto al quinto set con Medvedev #SinnerMedvedev#AusOpen
🗞@ultimora24
#ULTIMORA
Finale Australian Open, Sinner si prende il terzo set. Medvedev conduce 2 set a 1 su Sinner (6-3 6-3 4-6) #SinnerMedvedev#AusOpen
🗞@ultimora24
#ULTIMORA
Finale Australian Open, Medvedev conduce 2 set a 0 su Sinner (6-3 6-3). Si gioca al meglio di 5 set, al via il terzo #SinnerMedvedev#AusOpen
🗞️@ultimora24