Отдельно разберём 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
🎂10 Years of Google Chrome
#GoogleChrome turned 10 on Sunday, and according to its Twitter, we should be expecting a surprise today. Meanwhile, let's take a look at #Chrome's path to browser market domination:
2008 ⇢ 0.3%
2018 ⇢ 60%
Also, since 2012, #Google Chrome has become the world's most popular browser. Here's the list of its predecessors as the world's number one most popular browser since 1990:
1990 ⇢ WorldWideWeb
1993 ⇢ NCSA Mosaic
1995 ⇢ Netscape
1999 ⇢ Internet Explorer
2012 ⇢ Google Chrome
🚀@PerspectiveIX
💌 Join Pulse: Our Weekly Newsletter
❓ Is Chrome your default desktop browser?
Google Chrome
Google Chrome 是一款快速、安全且易于使用的网页浏览器,提供流畅的浏览体验和丰富的扩展功能。支持多平台同步,用户可以在多个设备上无缝访问书签、历史记录和设置。Chrome 还具备强大的隐私和安全保护措施,确保用户安全上网。
🔗:https://pan.quark.cn/s/80e6d21f7a1c
#GoogleChrome#网页浏览器#快速安全#多平台同步#扩展功能#隐私保护
🔔Twitter👥频道💬群组