Отдельно разберём 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
花:
Name: 模范出租车3/模范出租车 第三季(2025)【更14集】【1080p.高码率】【内封简繁】【附1-2季】
Size: 5GB/集
该剧改编自同名高分漫画,是有可能成为韩国本土化的英雄题材的电视剧,主要讲述代替别人复仇并完成自己的复仇计划的痛快复仇故事。
Link: 👉Press me and click START to get the hidden link
#开始发布#Publish#Baidu#Quark#求转存
♾@gdsharing♾Telegram/电报/纸飞机的网页端:可能无法点击链接
@ChannelLikeBot
Qué puede hacer este bot?
Este bot está diseñado para agregar botones de votación a publicaciones en canales y grupos.
SIN enlaces, SIN publicidad, NADA excepto botones de votación.
Idioma: Inglés
(visto en @BotsGram.cu)
#voting, #create, #fast, #channel, #questions, #links, #publish, #http, #message
@QuanBot
Qué puede hacer este bot?
Este es un bot avanzado para crear encuestas, agregar opciones y usar muchas herramientas.
Idioma: Múltiple
(visto en @BotsGram_cu)
#group, #questions, #template, #poll, #publish, #choice, #inline, #community, #management, #administration, #voting, #vote, #votes, #survey