Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
from fastapi.concurrency import run_in_threadpool
async def execute(data: DataRequest) -> DataResponse:
try:
result = await run_in_threadpool(sync_function, data)
return DataResponse(data=result)
except Exception as e:
return DataResponse(
error=str(e),
success=False,
)
В общем работает нормально. Для всех вызовов под капотом используется общий тредпул, всё работает предсказуемо.
Но потребовалось изменить количество запускаемых в пуле потоков (по умолчанию создается 40 воркеров).
Так как дело происходит с FastAPI, делается это через lifespan используя настройки anyio:
import anyio
@asynccontextmanager
async def lifespan(app: FastAPI):
limiter = anyio.to_thread.current_default_thread_limiter()
limiter.total_tokens = 100
yield
# если вдруг нужно вернуть обратно
limiter.total_tokens = 40
Зачем менять количество воркеров?
- уменьшить, если оперативки мало (один тред занимает ~8мб)
- увеличить чтобы выдержать нагрузку
Если есть предложения получше при тех же вводных - предлагайте😉
#async
#OOKI/USDT analysis :
#OOKI is currently consolidating sideways within the support and resistance zones. The price has recently bounced back from the support zone and is likely to continue its momentum to test the resistance zone.
TF : 1D
Entry : $0.001291
Target : $0.001488
SL : $0.001176
#OOKI/USDT analysis :
#OOKI is currently trading in the resistance zone below the 200 EMA. It is currently showing rejection in the resistance zone. It is highly anticipated that the price will continue its downside momentum and test previous lows. It is advisable to wait for the price to break below the $0.00143 level as confirmation for an entry.
TF : 2H
Entry : $0.00143
Target : $0.00119
SL : $0.00158
#OOKI trying to break up the falling wedge pattern on 3D Time frame,we are waiting to see what will happen ⏳
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
Утро трейдеров омрачил делистинг
#главное
Binance давно не зарабатывал на ликвидациях, это не дело.
6 ноября на Binance остановят торговлю токенами #IDRT, #KP3R, #OOKI и #UNFI.
Уведомление об этом как обычно вышло внезапно и обрушило токены на десятки %, дав многим трейдерам и владельцам авто-торговых ботов крупные убытки, ликвидации и лишние комиссии.
Напоминаю, защититься от делистингов с биржи можно с помощью списка мониторинга:
- Спасаемся от делистингов: риск-список криптовалют
- Нет лучше защиты, чем размер депозита.
- Чем опасны централизованные биржи?
Today's RSI Over Sold&Bought Coins by CoinLegs 💫
#LOOM#BOND#OOKI#FTT#OSMO#QUICK
Don't waste your time checking RSI levels for every coin. Let CoinLegs do it for you 🍻
It is free! Try the CoinLegs platform today.