Три способа выполнить множество задач с 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 line of longitude at 180°, known as the antimeridian, is mostly ocean but zigzags to avoid splitting island nations. This creates the International Date Line’s famous bends and detours. ✨
#coordinates⚡#longitude⚡#dateline⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 The 180th meridian, a line of longitude, is opposite the Prime Meridian and mostly runs through the Pacific Ocean. It’s where calendar days officially change, creating the famous International Date Line. ✨
#coordinates⚡#longitude⚡#dateline⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 Samoa’s 2011 time zone shift moved it west of the International Date Line, so travelers flying there from the U.S. now skip a day entirely, making for a calendar jump like nowhere else. ✨
#timezone⚡#dateline⚡#pacific⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 The tiny country of Kiribati stretches across both sides of the International Date Line, so it can be two different calendar days at once in this island nation. ✨
#Kiribati⚡#DateLine⚡#Pacific⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 Samoa famously skipped December 30, 2011, to switch from the eastern to the western side of the International Date Line. This move aligned its calendar with Australia and New Zealand. ✨
#Samoa⚡#dateline⚡#calendar⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍