Отдельно разберём 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
🇺🇸❌🇺🇳 ONU cuestiona sanciones y piratería naval de EE.UU. contra Venezuela
⚡️🗣Expertos de la ONU condenaron las sanciones y las acciones navales ejecutadas por Estados Unidos contra Venezuela, señalando que constituyen violaciones graves del derecho internacional.
❗️Según informó el canciller Yván Gil, los especialistas alertaron que estas prácticas socavan la legalidad internacional y contradicen los principios fundamentales de la Carta de las Naciones Unidas.
#NoALasSanciones#Piratería#VenezuelaSoberana#ONU
🇨🇺🔥Díaz-Canel denuncia el embargo petrolero de EE.UU.
❗️🗣El presidente Miguel Díaz-Canel afirmó que el embargo petrolero contra Cuba revela la “naturaleza fascista, criminal y genocida” de la cúpula gobernante en EE.UU.
⚡️Señaló que el gobierno de Donald Trump busca asfixiar la economía cubana imponiendo aranceles a países que comercien petróleo con la isla y que actúa bajo pretextos falsos, impulsados por quienes lucran con el sufrimiento del pueblo cubano.
#CubaResiste#NoAlBloqueo#BloqueoEsGenocida#SolidaridadConCuba#Soberanía#DerechoInternacional#NoALasSanciones#EEUUAmenaza#Imperialismo
🚨🇺🇸 EE.UU. sanciona a Petro: castigo al que no se alinea
❗️La decisión del Departamento del Tesoro de incluir a Petro, su familia y a su ministro del Interior en la Lista Clinton revela el carácter extraterritorial y punitivo del sistema de sanciones estadounidense.
⚡️El abogado del mandatario, Dan Kovalik, recuerda que Petro ha dedicado su vida a enfrentar el narcotráfico, pero eso no impide que Washington lo sancione cuando rompe con la agenda de sumisión regional.
#ListaClinton
#InjerenciaEEUU
#ColombiaSoberana
#NoALasSanciones
#Lawfare
#Imperialismo
#Petro
#Geopolítica
🇻🇪Comunicado oficial: Venezuela rechaza la orden ejecutiva de Estados Unidos que impone medidas punitivas a los países que mantengan relaciones comerciales con Cuba.
⚡️El Gobierno venezolano, a través del canciller Yván Gil, señaló que la medida estadounidense constituye una violación del derecho internacional y de los principios fundamentales del libre comercio, al intentar condicionar el intercambio legítimo de bienes y servicios entre Estados soberanos.
🗣🤝Caracas reafirmó su solidaridad con el pueblo cubano, y destacó que considerar a Cuba como una “amenaza a la seguridad nacional de EE.UU.” es un despropósito con graves implicaciones económicas y humanitarias.
#SolidaridadConCuba
#VenezuelaRechaza
#NoALasSanciones
#NoALaInjerencia
#RespetoASoberanía
#DerechoInternacional
#LibreComercio
#BloqueoEsIlegal
#CubaNoEstáSola
#VenezuelaYCuba
#EEUUAmenaza
#Imperialismo