Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🎈Hot App This Week🎈
🚀💰#Pi Network Has A New Competitor: #InterLink!⛏️⚡
[🔗InterLink Network]📌Released on Jul 15, 2025
✅Biometric face scan🤳 + liveness
✅Collections of mobile games 🎮🕹️
❌Small user base. 10 billion coin supply limit
[🔗Pi Network]📌Released on Mar 14, 2019
✅Wide global user base
✅100 billion coin supply limit
❌Many unverified users
Pick your desired bitcoin miner and start your crypto mining, earning, and trading TODAY!
Add @APKFreeDownloader_Bot to get any apk you want.
🔤🔤🔤🔤🔤🔤🔤🔤🔤
All of you already heard about Pi and its price. If you still don't have it, join Pi network and earn tokens.
Pi network - link
#Pi#Binance#Pinetwork
✨
✨#BANANAS31#PI#EVAA trades in VIP channel📈📈
We're here to help you recover your losses!
Step by step, no rush, but I will turn your losses into profit 👌🏼⚡️
😄
😄@CryptoBull_360_admin☑️
Mathematicians found that many formulas used to calculate π are connected.
About 43% of known π formulas come from one main form. Another 51% belong to related groups.
This shows many π formulas are not separate. They share common structures in math.
π is still an infinite number with no repeating digits.
📐🧠➗
[Read more]
@googlefactss
#math#pi#mathematics#science#facts