Отдельно разберём 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
🔢 С днём социолога!
#jokeoftheday@rut_wor
Желаем безжалостно ломать стереотипы и строить новое общество!
Пускай в вашей жизни будет меньше статистики и прогнозов, а больше счастливых минут, достижений и встреч! Пускай деятельность приносит пользу обществу, вдохновляет и мотивирует вас на перемены. Успехов вам во всех начинаниях!
💰С днём экономиста!
#jokeoftheday@rut_work
Желаем , чтобы ваши расчёты всегда были точными, а доходы — стабильными. Пусть ваши знания и умения помогут вам достичь успеха в этой сложной, но интересной профессии.
👩🏻🔧Поздравляем с днем инженера-механика!
#jokeoftheday@rut_work
Желаем неиссякаемой энергии, блестящих идей и невероятных изобретений. Пусть твои механизмы всегда работают безупречно, а удача сопутствует тебе во всех начинаниях!
#рутмиит#мысоздаемдвижение#rut_work
🔌 С днем кабельной промышленности!
#jokeoftheday@rut_work
Пусть жизнь будет такой же прочной и надежной, как кабели, а удача и успех никогда не рвутся.
#рутмиит#мысоздаемдвижение#rut_work
📚 С днём кадрового работника!
#jokeoftheday@rut_work
Желаем тебе столько терпения, сколько нужно, чтобы запомнить все дни рождения сотрудников, и столько чувства юмора, чтобы превратить заполнение трудовых книжек в весёлое занятие.
#рутмиит#мысоздаемдвижение#rut_work