Отдельно разберём 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
La vida no se rige por la voluntad o por la intención. La vida es una cuestión de nervios, de fibras, de células lentamente formadas, en las que se esconde el pensamiento, y la pasión tiene sus sueños. Puede que ahora te creas a salvo y te consideres fuerte. Pero un casual tono de color en una habitación, un cielo matinal, un perfume peculiar que hayas amado y que te trae sutiles recuerdos consigo, un verso de un poema olvidado que vuelve a tu memo- ria, una cadencia de una pieza musical que has dejado de tocar, de todo esto, Dorian, te lo digo, de todas estas cosas parecen depender nuestras vidas...
El retrato de Dorian Gray
#OscarWilde
Si usted me conoce basado en lo que yo era hace un año, usted ya no me conoce. Mi evolución es constante. Permitame presentarme de nuevo...
#OscarWilde
“¡Sí, soy un soñador! Y estoy orgulloso de ello, porque es gracias a mi ensoñación que puedo encontrar mi camino en completa oscuridad y luego ver el amanecer antes que el resto de la humanidad”.
#OscarWilde
Así que aprovecha tu juventud antes de que se acabe. No desperdicies tus días dorados escuchando a santos aburridos, no trates de corregir lo incorregible, no entregues tu vida a los ignorantes, vulgares y nulos, siguiendo las falsas ideas y aspiraciones malsanas de nuestra época. ¡Vivir! Vive la maravillosa vida que se esconde dentro de ti. ¡No te pierdas nada, busca siempre nuevas sensaciones! ¡No tengas miedo de nada!
El retrato de Dorian Gray
#OscarWilde