Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Kaptaan | Streaming Now | Amazon MX Player
Language: Hindi
Genre: Drama, Crime, Thriller
‼️attention‼️ Kaptaan ab hai officially on duty🫡
watch now🔗- https://www.mxplayer.in/show/watch-kaptaan-series-online-1cc29e17533cf5074ed50f00d11326cf
#AmazonMXPlayer#StreamingNow
Bharat Startup Yatra | Streaming Now | Amazon MX Player
Language: Hindi
Genre: Documentary
desh ko apni stories se inspire karne aa chuka hai Bharat Startup Yatra.
watch Bharat Startup Yatra Streaming Now, only on Amazon MX Player, for FREE! ✨
🔗https://youtu.be/jBU8DvwjnG4
#BharatStartupYatra#StreamingNow#AmazonMXPlayer
makeup se badla Lim Joo-kyung ka roop… par kya pyaar mein aa gaya hai love triangle ka loop?
dekhiye TRUE BEAUTY streaming now only on Amazon MX Player for FREE.
#TrueBeauty#StreamingNow#AmazonMXPlayer#Announcement2026
Bindiya Ke Bahubali S2 | Streaming Now| Amazon MX Player
Language: Hindi
Genre: Crime Comedy
phir se ek baar machne waali hai khalbali kyuki we are back with Season 2 of Bindiya Ke Bahubali 😉
#BindiyaKeBahubaliS2 special partner Lux Nitro streaming now only on Amazon MX Player for FREE!
Watch Now🔗- https://www.mxplayer.in/show/watch-bindiya-ke-bahubali-series-online-73fa001cee6b2710599b822aab6051ea
#BindiyaKeBahubaliS2onAmazonMXPlayer#AmazonMXPlayer#StreamingNow
binge-watching nahi rukhni chahiye, guys!🤩🤩
First Copy Season 2, co-powered by @Lux_Innerwear, streaming now only on Amazon MX Player for FREE!
#FirstCopyS2#WatchFree#AmazonMXPlayer#FirstCopyS2OnAmazonMXPlayer#StreamingNow
Bhay – The Gaurav Tiwari Mystery | Streaming now | Amazon MX Player
Language : Hindi
Genre: Horror, Mystery Thriller
haunted cases solve karne wale Gaurav Tiwari became a mystery himself, aakhir kya hua tha Gaurav Tiwari ke saath?
Bhay – The Gaurav Tiwari Mystery, inspired by real events, streaming now on Amazon MX Player, for FREE!
Watch link🔗 - https://bit.ly/BhayTheGauravTiwariMystery
#BhayTheGauravTiwariMystery#BhayOnAmazonMXPlayer#AmazonMXPlayer#WatchNow#WatchFree#StreamingNow