Отдельно разберём 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
📹Watch The Gateway on YouTube
All TON community members who were unable to attend the #TheGateway event in #Dubai dedicated to #TheOpenNetwork, missed the #online broadcast, or want to watch it again can watch the recorded videos at the following links:
🔔Day 1 recording:
https://youtu.be/Y7zA6K8-oWM
🔔Day 2 recording:
https://youtu.be/P8BQm5JtHzw
Buy
💎 $TON in Telegram xRocket
🥇SettleTON took first place in The Open League Hackathon
SettleTON became the first in the #DeFi track. The project team is grateful for the invaluable support of the community and ❤️TON Foundation!
“We have a huge responsibility to carry the DeFi banner and delight you with new features of our Mini App❤️"
🏆For first place, the project will receive:
— $35,000 for development and marketing
— $10,000 on #TelegramAds
— Participation in the #TheOpenLeague competition
— Fast track in #TONAccelerator
— Participation in the #TheGateway conference in November
🚀$7,000 will be allocated to AIRDROP NFT holders and the $STL index itself, which can already be purchased on SettleTON
🙏What's next?
In the next 2-3 months, in addition to the documentation, new DeFi protocols for pharming will be integrated, as well as the number of investment tools will increase and basic portfolio management functionality will be added. 💼
Your referrals will not disappear anywhere, the more there are, the better!
Incredible announcements ahead!
☀️