Отдельно разберём 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
👀🇯🇵 A partir de mañana, Munetaka Murakami tendrá 45 días para firmar con un equipo de la MLB. Tiene 265 jonrones en su carrera con un OPS de .945 en ocho temporadas en Japón.
#️⃣#Murakami
🗞 | t.me/MLB_Daily
👀🇯🇵 Después de conectar 246 jonrones en ocho temporadas de la NPB, uno de los mejores bateadores de poder de Japón será puesto en disponibilidad para equipos de la MLB este invierno. El toletero japonés Munetaka Murakami será puesto en disponibilidad por los Yakult Swallows de la Nippon Professional Baseball.
🇺🇸 Vía Mark Feinsand
#️⃣#Murakami
🗞 | t.me/MLB_Daily
💥 NOTICIA DE ÚLTIMA HORA 🧦🤝: El dos veces MVP japonés Munetaka Murakami y los White Sox han llegado a un acuerdo para un contrato de 2 años y 34 millones de dólares.
#️⃣#WhiteSox#Murakami
🗞 | t.me/MLB_Daily
📊 El ritmo actual de la temporada completa de Munetaka Murakami:
66 HR
116 carreras
132 RBI
132 BB
.595 SLG
.979 OPS
163 wRC+
6.0 fWAR
El robo de la temporada baja.
#WhiteSox#Murakami#Stats
🗞 | t.me/MLB_Daily
👀 El premio al Novato del Año de AL se está convirtiendo en una carrera de dos hombres en BetMGM:
Munetaka Murakami: +140
Kevin McGonigle: +145
#ROY26#Murakami
🗞 | t.me/MLB_Daily
👀😀 Se espera que un nuevo grupo de talento japonés sea publicado para los clubes de la MLB esta temporada baja.
#️⃣#Murakami#Okamoto#Imai
🗞 | t.me/MLB_Daily