Три способа выполнить множество задач с 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
🌍 The deepest parts of the Mariana Trench were first explored by humans in 1960, but remote vehicles have since found entire new species living over 10,900 meters below the sea surface. ✨
#exploration⚡#ocean⚡#trench⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌎 In the Mariana Trench, the deepest part of the ocean, researchers have found strange microbial life living over 10,900 meters below the surface. These microbes survive by breaking down chemicals from rocks, not sunlight, and help recycle nutrients in this harsh environment. ✨
#ocean⚡#trench⚡#microbes
👉subscribe Interesting Planet
👉more Channels
🌎 Beneath the waves near Antarctica, scientists have located a deep-sea region called the South Sandwich Trench, reaching depths of about 8,266 meters. This trench is the deepest point in the Southern Ocean, and recent expeditions revealed unique amphipod species living at these extreme pressures. ✨
#ocean⚡#trench⚡#amphipods
👉subscribe Interesting Planet
👉more Channels
🌎 The Mariana Trench is the deepest part of the world’s oceans, plunging nearly 11,000 meters at its Challenger Deep. Extreme pressure and cold make exploration challenging. The trench’s deepest known animal is the amphipod Hirondellea gigas, found over 10,900 meters down. ✨
#ocean⚡#mysteries⚡#depth⚡#trench
👉subscribe Interesting Planet
👉more Channels