Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Who Is Behind the Alleged Genocide Against Christian (Amhara) Communities in East Arsi, Ethiopia? – and When Will this Stop?
https://borkena.com/2026/03/03/ethiopian-orthodox-christians-who-is-behind-the-alleged-genocide-against-christian-amhara-communities-in-east-arsi-ethiopia/#Ethiopia#humanrights#Arsi
The Unspoken Crisis of Ethiopian Orthodoxy. Read more.
https://borkena.com/2026/03/15/ethipoia-the-unspoken-crisis-of-ethiopian-orthodoxy/#Ethiopia#Orthodox#Arsi
Oromo Liberation Army Points Finger At Abiy Ahmed’s Admin. Over Arsi Massacre. Read more.
https://borkena.com/2026/03/04/ethiopia-oromo-liberation-army-points-finger-at-abiy-ahmeds-admin-over-arsi-massacre/#Ethiopia#OLA#Arsi
Three Orthodox Christians Reportedly killed in Arsi, Oromia region. Read more.
https://borkena.com/2026/02/25/ethiopia-three-orthodox-christians-reportedly-killed-in-arsi-oromia-region/#Ethiopia#News#OrthodoxChristians#Arsi#Orthodox
Death Toll From Arsi Massacre Rise To 34 as killing Orthodox Christian Continues. Read more.
https://borkena.com/2026/03/03/ethiopia-death-toll-from-arsi-massacre-rise-to-34-as-killing-orthodox-christian-continues/#Ethiopia#Arsi#humanrights#Oromia#OrthodoxChristians
Did the World Council Of Churches erred about the Massacre in Arsi?
https://borkena.com/2025/11/15/ethiopia-world-council-of-churches-condemns-all-acts-of-violence-in-ethiopia/#Ethiopia#News#OrthodoxChristianchurch#Ethiopia#WorldCouncilofchurches#Arsi
Systematic Persecution in Oromia: The Role of Militias and Political Actors in Targeting Ethiopian Orthodox Christians. Read more. https://borkena.com/2025/11/05/systematic-persecution-in-oromia-the-role-of-militias-and-political-actors-in-targeting-ethiopian-orthodox-christians/#Ethiopia#Orthodox#OrthodoxChristians#OromiaMassacre#Arsi