Отдельно разберём 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
Il presidente della Regione Sicilia Renato #Schifani: “Oggi è un grande giorno per la Sicilia e per l'Italia intera, l'arresto di Matteo Messina Denaro è un colpo durissimo inflitto alla mafia. Tutti devono sapere che in questa Terra non ci possono essere spazi né di illegalità né d'impunità”.
@UltimoraPolitics
#Italia#Sicilia
❗️ Il centrodestra propone l'ex presidente del Senato, Renato #Schifani come candidato per la presidenza della Regione Sicilia
@UltimoraPolitics
Il vicepremier e ministro delle Infrastrutture, Matteo #Salvini ha invitato i governatori Roberto #Occhiuto e Renato #Schifani al dicastero di Porta Pia per discutere sul progetto del Ponte sullo Stretto tra Calabria e Sicilia
@UltimoraPolitics
La premier #Meloni ha detto che per dare "risposte celeri" ai territori colpiti dal maltempo "serve una filiera, non è una cosa che posso fare io da sola, il governo da solo" o "il ministro #Musumeci da solo, il presidente #Schifani da solo. Serve che ci lavoriamo tutti insieme, in buona fede, evitando le polemiche perché qui tutti quanti abbiamo la stessa responsabilità, lo stesso obiettivo che è dare risposta ai nostri cittadini" (ANSA)
@UltimoraPolitics24
#Italia#Sicilia
Manlio #Messina, parlamentare della maggioranza nel gruppo misto alla Camera, ha chiesto le dimissioni del presidente della Sicilia Renato #Schifani in seguito alla sconfitta referendaria.
@Osservatorioitaliano
#Italia#Sicilia
❗️Frana di Niscemi: indagati il ministro Nello #Musumeci (#FdI), il presidente Renato #Schifani (#FI) e gli ex presidenti Raffaele #Lombardo (#MpA) e Renato #Crocetta (sinistra).
@OsservatorioItaliano