Отдельно разберём TaskGroup, который пришел на замену gather в Python 3.11.
Ключевые отличия
▫️create_task() возвращает объект asyncio.Task, у которого есть соответствюущие методы управления. То есть у нас больше контроля
▫️это контекстный менеджер, который гарантирует что все таски будут остановлены по выходу из контекста
▫️ошибка автоматически отменяет незавершенные задачи,
▫️except* передает нам ExceptionGroup, в котором каждую ошибку можно обработать отдельно
import asyncio
import random
async def do_it() -> str:
if random.random() < 0.1:
raise ValueError('Oops')
delay = random.uniform(0.5, 1.5)
await asyncio.sleep(delay)
return delay
async def main():
try:
async with asyncio.TaskGroup() as tg:
for _ in range(10):
tasks.append(tg.create_task(do_it()))
for t in tasks:
print(t.result())
except *ValueError as e:
for err in e.exceptions:
print(err)
asyncio.run(main())
Рекомендую изучить страницу Coroutines and Tasks из документации, где представлено больше интересных примеров и механизмов
- таймауты
- отмена задач
- создание задач из другого потока
#async
The End of the Harley Era?
The US motorcycle market faces a demographic crisis. While legacy giants struggle with an aging rider base, Royal Enfield and Honda are aggressively capturing the new generation with mid-capacity bikes and accessible pricing.
Full breakdown: https://dailypoliticalpress.com/?p=46935
#BusinessAnalysis#Motorcycles#MarketTrends#HarleyDavidson#RoyalEnfield
When you buy a bike to get relief from stress…
#Himalayan450#royalenfield#royalenfieldhimalayan#royalenfieldindia#adventure#adventuretouring#BikerLife#bikergirl#bikersofinstagram
💥 Royal Enfield Classic 350: Обзор переведенный 🔍
Нотки вечности 🕰️💨... и Душа современности ❤️🔥
Легенда возвращается! Знакомый до боли силуэт, тот самый характерный рокот мотора... но присмотритесь повнимательнее! 🌟 Наш новый обзор посвящен Royal Enfield Classic 350 — мотоциклу, который мастерски соединяет нестареющую классику с современными технологиями.
Почему он до сих пор сводит с ума? 😉 Вот ключевые моменты:
🕰️ Вечный Шарм: Узнаваемая форма бензобака, хромированные детали, традиционный дизайн – это машина времени на двух колесах.
⚙️💡 Современное Сердце: Не обманывайтесь ретро-видом! Обновленный двигатель, улучшенная топливная система, дисковые тормоза (опционально ABS) и современная приборная панель — душа этого байка сегодняшняя!
🛋️ Комфорт & Уверенность: Переработанная подвеска обеспечивает плавность хода, а эргономика создана для долгих, неторопливых покатушек
Итог? 🤔 Royal Enfield Classic 350 — это не просто мотоцикл. Это атмосфера, это стиль жизни, это любовь с первого взгляда, подкрепленная теперь и современной надежностью. Он для тех, кто ценит подлинность, но не хочет жертвовать комфортом и безопасностью.
Хотите прочувствовать эту магию? ✨
#RoyalEnfield#Classic350#ОбзорМото#МотоциклМечты#РетроБайк#НоваяКлассика#Мотожурнал#iMotorbike#Мотожизнь#ЛегендаНаДорогах#Покатушки#ДушаМотоцикла