Три способа выполнить множество задач с 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
Горы в осаде: как Таджикистан стал фабрикой контрабанды
🦅💔Торговля редкими животными – это не просто преступление, а целая индустрия, приносящая миллионы. Один сокол из Центральной Азии может стоить $50 тыс., а за снежного барса платят до $80 тыс. Браконьеры вывозят сотни особей, а наказание – редкость.
🔥90% контрабандистов остаются безнаказанными, а спрос на рынке только растёт. Экосистемы рушатся, но богатые коллекционеры продолжают покупать.
⏳Пока законы слабы, природа платит цену. Вопрос не в том, можем ли мы остановить это. Вопрос в том, хотим ли.
❌🐆#СтопБраконьерство#SaveWildlife
🦏 Маленькое чудо в большом мире природы
В Испании произошло настоящее событие — родился первый в стране детёныш белого носорога после удивительной 491-дневной беременности.
Это одна из самых длительных беременностей среди всех наземных млекопитающих, и каждый день этого пути имеет значение.
Когда малышка появилась на свет, она весила более 40 килограммов, но рядом с матерью казалась крошечным комочком складок, любопытства и упрямой энергии.
Уже через несколько часов она встала на ноги, а спустя дни начала повсюду следовать за матерью — ведь для носорогов близость означает жизнь.
Белые носороги — не просто редкие животные.
Они — инженеры экосистем: формируют ландшафты, поддерживают разнообразие растений и помогают выживать десяткам других видов.
Каждое рождение — это шаг к сохранению не только вида, но и целых экосистем нашей планеты 🌍
#БелыйНосорог#ДикаяПрирода#ЗащитаЖивотных#СохранениеВида#ПриродаПланеты#Экология#Wildlife#NatureLovers#SaveWildlife