Отдельно разберём 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
https://play.google.com/store/apps/details?id=com.kiwibrowser.browser
Kiwi Browser 是一款可以安装和使用Chrome桌面版插件的Android端浏览器。我们可以将电脑上常用的广告屏蔽等插件安装在我们的手机浏览器上达到和电脑端一样清爽的浏览效果。
Kiwi Browser is an android browser that can install Chrome desktop version extensions. We can install adblock extension on our phone to achieve same browsing experience on our PC.
#Software
资源名称:Mac OS X Install DVD 10.6.7 For 2011 MacBook Pro 13 13-inch
描述:Mac OS X Install DVD 10.6.7 For 2011 MacBook Pro 13 13-inch
🧲 链接: magnet:?xt=urn:btih:AF43645BEEC95951A47CC4E364F7774081C7E1BF
👉使用 PikPak 秒存,立即在线观看👈
📁 文件大小:6.23GB
🏷 文件类型:#Software#MacOS
📢 频道:@PikPak_Share_Channel
👥 群组:@PikPak_Share_Group