Отдельно разберём 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 fusée russe Proton-M qui devrait lancer un satellite météorologique a été installée sur la plateforme de lancement de Baïkonour, a annoncé la société publique Roscosmos.
#russie#espace#roscosmos
🚀Premier lancement de la fusée Soyouz-5 depuis #Baïkonour
La fusée porteuse Soyouz-5 a décollé avec succès à 21 heures précises, heure de Moscou depuis la rampe de lancement numéro 45 du cosmodrome de Baïkonour. Ce lancement était le premier essai en vol du nouveau lanceur russe de classe moyenne dans le cadre des essais de vol et de conception. C'est ce qu'a annoncé #Roscosmos.
Ses représentants précisent que les premier et deuxième étages de la fusée ont fonctionné normalement pendant le vol, que la maquette de charge utile a été placée sur la trajectoire suborbitale prévue, avant de retomber dans une zone de l'océan Pacifique préalablement fermée à la navigation et à l'aviation.
RT en français • Osez questionner !
🚀Premier lancement de la fusée Soyouz-5 depuis #Baïkonour
La fusée porteuse Soyouz-5 a décollé avec succès à 21 heures précises, heure de Moscou depuis la rampe de lancement numéro 45 du cosmodrome de Baïkonour. Ce lancement était le premier essai en vol du nouveau lanceur russe de classe moyenne dans le cadre des essais de vol et de conception. C'est ce qu'a annoncé #Roscosmos.
Ses représentants précisent que les premier et deuxième étages de la fusée ont fonctionné normalement pendant le vol, que la maquette de charge utile a été placée sur la trajectoire suborbitale prévue, avant de retomber dans une zone de l'océan Pacifique préalablement fermée à la navigation et à l'aviation.
RT en français • Osez questionner !
🇷🇺 Pour son travail au bureau orbital de l'agence TASS sur la Station spatiale internationale (ISS), le cosmonaute de Roscosmos Alexeï Zoubritski a reçu la médaille commémorative TASS à l’ISS.
La médaille lui a été remise par le directeur général de TASS, Andreï Kondrachov.
#tass#roscosmos#iss#zoubritski
Nello spazio non c'è #guerra
Immagini del ritorno sulla Terra dei #cosmonauti di #Roscosmos Sergei #Ryzhikov e Alexei #Zubritsky, nonché dell'astronauta della #NASA Jonathan #Kim.
👉 Un momento delicato e sempre emozionante. Per un russo poi non ne parliamo. Lo spazio è un tema sacro.
E quanto è bello vedere #russi e #statunitensi collaborare (come sempre) nello #spazio.
#tatianasanti
SEGUI Tatiana Santi:
Telegram | YouTube | Sito Web
📱Donazioni