Отдельно разберём 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
🇬🇧Black Widow. Volume 5 #01
🇷🇺Чёрная Вдова. Том 5 #01
Мы видели Черную Вдову в роли Мстителя и даже Агента Щ.И.Т. Но в остальное время она ищет искупления за своё прошлое как убийцы КГБ — способами, которые эти команды просто не одобрили бы.
#marvel
🇬🇧Scarlet Witch. Volume 2 #1-5
🇷🇺Алая Ведьма. Том 2 #1-5
Колдовство сломано, и Алая Ведьма отправляется в путешествие по всему миру, чтобы исправить это. Путешествуя от глухих переулков Манхэттена до безмятежных греческих островов и ирландской сельской местности, бывшая Мстительница столкнётся с мифами и легендами из древних преданий, излечит проклятия и обнаружит, что их история имеет ещё большее значение для её сложной семейной истории, чем она думала. В Испании она посетит церковь, где когда-то сжигали на костре таких ведьм, как она, и её будут преследовать призраки испанской инквизиции! Будет ли могущественный маг, известный как Изумрудный Чернокнижник, другом или врагом Ванды или Сверхъестественных Мстителей? И пока она раскрывает магические преступления и собирает колдовство воедино, остаётся один жизненно важный вопрос: кто разрушил его?
#marvel
🇬🇧Spider-Punk #1-3
🇷🇺Паук-панк #1-3
Проносясь по Земле-138 с топором в руках, Хоби Браун несет шум и ярость как герой революции, единственный и неповторимый анархический... Панк-паук. Ранее Хоби Браун, он же Паук-Панк, разбил своей гитарой череп злодейски веномизированного Нормана Осборна, президента США.
#marvel