Отдельно разберём 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
📌Către ora 15:00 au votat 7043 alegători în cele 7 localități din țară astăzi au loc alegeri locale noi pentru funcția de primar.
🗳Localitățile cu cea mai ridicată prezență la vot sunt Arionești, Dondușeni, și Clocușna, Ocnița, unde, până la această oră, se atestă o rată de circa 41,61% și, respectiv 36,11 la sută.
#CECMoldova#AlegeriLocaleNoi#17Noiembrie2024#ALN#DemocrațiaContează
🔵Peste 4000 de alegători și-au exercitat dreptul la vot către ora 12:00
‼️Comisia Electorală Centrală anunță date actualizate despre prezența la vot în cele 7 localități din Republica Moldova, unde astăzi au loc alegeri locale noi.
🗳Până la ora 12:00 au votat 4180 de alegători, ceea ce reprezintă 16,41 % din numărul celor înscriși pe listele electorale de bază.
#CECMoldova#AlegeriLocaleNoi#17Noiembrie2024#ALN#DemocrațiaContează
🗳În 7 localități din țară au loc alegeri locale noi pentru funcția de primar
‼️Comisia Electorală Centrală anunță că procesul de votare în cele 7 localități din țară, unde astăzi au loc alegeri locale noi, se desfășoară în regim normal.
✅La ora 07:00 au fost deschise toate cele 15 secții de votare. În listele electorale de bază sunt înscriși, în total, 25 416 alegători.
ℹ️ Ne puteți urmări și pe Instagram: https://www.instagram.com/cec.moldova/
#CECMoldova#AlegeriLocaleNoi#17Noiembrie2024#ALN#DemocrațiaContează