Отдельно разберём 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
#CAKE/USDT analysis :
#CAKE has retraced and tapped the previous resistance zone, which is now support for the price. Bullish momentum is expected from the current level. Wait for the price to bounce back and break out of the $2.614 level to go long, with the previous swing high as the target level.
TF : 1D
Entry : $2.614
Target : $4.180
SL : $1.992
#CAKE/USDT analysis :
#CAKE is currently in an uptrend, forming higher highs (HHs) and higher lows (HLs) above the 200 Exponential Moving Average (200EMA). The price is anticipated to undergo a retracement and test a support zone before resuming its bullish momentum. A new high is likely to be established soon.
TF : 15min
Entry : $2.033
Target : $2.091
SL : $2.004