Три способа выполнить множество задач с 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
Внимание! #Розыск!
Друзья! А помогите мне, пожалуйста, а? Сегодня, около 11:00, мой автомобиль #Mercedes, который стоял на парковке возле Novus на Святошино, поддался жесткому сношению со стороны бляховода на #Volkswagen#Passat (часть номера 1055 LT). Конечно же, с места оно сразу же уехало. Прошу вас помочь мне найти виновника и наказать (по всей строгости закона, конечно же). Может, это чей-то сосед или надоедливый родственник. Сделайте репост, пожалуйста.
Всё просто - просто въехал и просто уехал
Видео: https://youtu.be/KXV4jXnQSZw
Внимание! #Розыск!
Друзья! А помогите мне, пожалуйста, а? Сегодня, около 11:00, мой автомобиль #Mercedes, который стоял на парковке возле Novus на Святошино, поддался жесткому сношению со стороны бляховода на #Volkswagen#Passat (часть номера #PP1055H ). Конечно же, с места оно сразу же уехало. Прошу вас помочь мне найти виновника и наказать (по всей строгости закона, конечно же). Может, это чей-то сосед или надоедливый родственник. Сделайте репост, пожалуйста.
Фото тут: https://www.facebook.com/KyivOperativ/posts/466387360424022
🚗✨Introducing the All-New Volkswagen Passat in China!🇨🇳
Say hello to the latest sedan that combines sleek design with innovative features! While it may resemble the European wagon, the Chinese Passat boasts a unique look with aggressive bumpers and stylish black accents. 😍
🌟Key Features:
- 11.6-inch Passenger Display for ultimate entertainment! 📱
- Convenient Seat Adjustment Button for rear passengers to maximize comfort! 🪑
Under the hood, choose between two powerful turbo engines:
- 1.5L with 160 hp ⚡️
- 2.0L with 220 hp 🚀
🗓️Sales Begin on September 10th!
#Volkswagen#Passat#NewRelease#China#CarEnthusiasts#Innovation#LuxuryOnWheels#Auto