Отдельно разберём 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
🚐 Тюнер Brabus представил уникальный дом на колесах под названием Big Boy 1200, стоимостью €1,26 млн. Это 12-метровый грузовик Mercedes, превращённый в роскошный "пентхаус" с высококачественными отделочными материалами, такими как кожа, дерево, алькантара и карбон.
🛋️ Внутри Big Boy 1200 имеется полностью оборудованная кухня с духовкой и винным шкафом, уютная спальня с двуспальной кроватью, а также ванная комната с подогреваемым полом и душем-«дождём». Для развлечений предусмотрены два телевизора и консоль PlayStation 5.
⚙️ Основанный на шасси Mercedes Actros, этот дом на колесах оборудован 12,8-литровым дизелем мощностью 530 л.с. и солнечными панелями на крыше. Такая роскошь позволяет забыть о привычной жизни и наслаждаться каждым моментом в путешествии.
______
#ТИСЛОДЖИСТИК🦏
#BigBoy1200
#Brabus
#РоскошьНаКолёсах
🚐✨Introducing the Luxurious Brabus Big Boy 1200 Motorhome!✨🚐
This stunning camper, priced at €1.26 million, measures an impressive 12 meters in length and is designed for a maximum of three residents. 🛏️👨👩👧
The Big Boy 1200 features several retractable modules that expand the living space during your stay, offering a spacious bedroom and a cozy living area that doubles as a dining room. 🛋️🍽️
In the bedroom, you'll find a full-size bed (160x200 cm), while an additional sleeping space for one person is cleverly located above the driver’s cabin. 💤🛌
Built on a robust three-axle Mercedes-Benz Actros chassis, this motorhome is powered by a 12.8-liter diesel engine that delivers an astonishing 530 hp and 2600 Nm of torque! 💪🚛
Get ready to travel in style and comfort! 🌍❤️
#Brabus#BigBoy1200#LuxuryMotorhome#VanLife#TravelInStyle#MercedesBenz#AdventureAwaits#Auto