Отдельно разберём 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
🇻🇪🤝🇷🇺#Rusia y Venezuela amplian la #cooperación en el marco de la #salud
👩🔬🧑🔬 A invitación del Ministerio de Ciencia y Tecnología de #Venezuela, inauguramos un curso de 3 días sobre la vigilancia epidemiológica para el personal del Instituto Venezolano de Investigaciones Científicas, Instituto Nacional de Higiene "Rafael Rangel" y otros centros científicos afines con la participación de los especialistas de varios institutos científicos y de investigación de "Rospotrebnadzor".
Embajador Sergey Melik-Bagdasarov: 💬 el trabajo conjunto mejorará los sistemas de atención sanitaria y vigilancia epidemiológica de nuestros países, lo que contribuirá a mejorar la calidad de vida de los ciudadanos de Rusia y Venezuela
🇨🇳🤝🇨🇺 China envía ayuda de emergencia a Cuba en medio del asedio estadounidense
❗️El presidente Xi Jinping oficializó el envío de una ayuda de emergencia de 80 millones de dólares y 60.000 toneladas de arroz a Cuba, en un gesto de cooperación y solidaridad internacional.
⚡️El apoyo llega en un momento crítico para la isla, afectada por décadas de sanciones unilaterales e ilegales que han impactado severamente la economía y el bienestar del pueblo cubano.
#CubaNoEstáSola
#SolidaridadInternacional
#ChinaCuba
#NoAlBloqueo
#Cooperación
#Soberanía
#SurGlobal
Solidarietà che attraversa il mare
In un gesto di profonda fratellanza e sostegno, il Messico ha inviato a Cuba oltre 814 tonnellate di aiuti umanitari, in risposta all'aggravarsi del blocco economico.
Le navi della Marina messicana Papaloapan e Isla Holbox sono salpate da Veracruz cariche di:
Alimenti di prima necessità: latte liquido e in polvere, carne, biscotti, fagioli, riso, tonno, sardine, olio.
Articoli per l'igiene personale.
Un'azione ordinata dalla Presidente Claudia Sheinbaum che riafferma i legami storici e la vocazione solidale tra i due popoli, oltre all'impegno per la cooperazione internazionale.
"Cuba e Messico siamo popoli fratelli, eredi di una lunga storia di solidarietà che oggi onoriamo".
Questo sostegno arriva mentre proseguono i negoziati diplomatici per garantire anche forniture energetiche all'isola, di fronte a minacce di dazi da parte degli Stati Uniti.
La solidarietà latinoamericana non si ferma.
#Cuba#Mexico#Solidaridad#AyudaHumanitaria#Cooperación#Bloqueo#LatinoamericaUnida
https://www.marx21.it/internazionale/il-messico-invia-a-cuba-piu-di-800-tonnellate-di-aiuti-umanitari/