Отдельно разберём 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
#savethedate
#ПРИГЛАШЕНИЕ
В среду ждем вас в выставочном зале союза художников России на Покровке, 37 в 16.00
Персональная выставка одного из самых серьезный и масштабных художников монументалистов России и СССР Игоря Владимировича Пчельникова - народного художника РФ и действительного члена РАХ
Выставка работает с 26.06 по 12.07.2025
#savethedate Пришло время рассказать вам еще об одном очень важном для нас издательском проекте — книги-исследовании «Архитектура развития. Методология проектирования современных школ». Исследование, инициированное бюро ATRIUM, мы выпустили практически «под елочку» — в последних числах декабря.
И вот наконец официально презентуем — но не просто так, а в формате мульдисциплинарной конференции27 февраля 10:00-14:00 в Доме на Брестской.
Потому что создание образовательной среды, которое воспитывает многогранную личность, — процесс, в который вовлечены и государство, и девелопмент, и педагоги, и архитекторы. Это наше большое общее дело. Бюро ATRIUM систематизировало весь свой гигантский практический опыт, мы со своей стороны подтянули теоретическую часть и взяли десятки интервью у самых разных экспертов отрасли — и теперь хотим обсудить, что у нас получилось и как это можно использовать для создания проектов школ в будущем.
Подробная программа и регистрация тут
В будуших публикациях подробно расскажем о самом исследовании — и том, какими могут и должны быть наши школы.
#архитектураразвития#итоги2022
Transforming our #Vision2Action, the #NCDCStrategy story continues 💪🏾
The #NCDCStrategy 2023-2027 is set to be launched❕
Join us for our health security partners meeting and strategy launch.
When❓
🗓️Tuesday, 21 November 2023
#SaveTheDate via
🔗bit.ly/NCDCStrategyLaunch
#IAmHealthSecurity