Отдельно разберём 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
#TKO/USDT analysis :
#TKO is currently consolidating within a key support zone. There is an expectation for the price to bounce from this zone and continue its upward trajectory, potentially testing previous highs.
TF : 1D
Entry : $0.4660
Target : $0.7400
SL : $0.3780
#TKO/USDT analysis :
#TKO is in a downtrend, trading below the 200 EMA. The price has broken below key support levels after facing rejection at the 200 EMA. It is now likely to decline further and continue its bearish momentum, potentially testing lower levels.
TF : 4H
Entry : $0.3318
Target : $0.2905
SL : $0.3530
#TKO is rising in the bullish channel,we expect a bearish scenario for this chart,huge drop incoming 📉
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
#TKO/BTC
Breaking out on 4H timeframe heavy accumulation detected from past few days
Expecting bullish rally from here🚀
Looks like it will follow #TWT🚀