Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Azamat Hatamov – Termizda: San’at va ilhom birlashgan kun
Bugun, 2025-yil 22-aprel kuni “Termiz “davlat muzey-qo‘riqxonasida o‘zgacha bir muhit, san’at va ilhom bilan yo‘g‘rilgan kun bo‘ldi. Mashhur haykaltarosh rassom Azamat Hatamovning tashrifi nafaqat muzey hayotiga, balki butun san’at ixlosmandlariga katta hodisa sifatida muhrlandi.
Azamat Hatamov bilan bo‘lgan uchrashuv, ayniqsa yosh ijodkorlar va san’at ixlosmandlari uchun katta ilhom manbai bo‘ldi. Ularning ko‘zida esa birgina ishtiyoq — san’at orqali yurakka yetib borish, tarixni tasvir orqali jonlantirish orzusi porlab turdi.
“Termiz “davlat muzey-qo‘riqxonasi uchun bu tashrif alohida ahamiyatga ega bo‘lib, u san’at va madaniyat yo‘lida yana bir muhim sahifani ochdi. Shubhasiz, bu kun ishtirokchilarning qalbida uzoq saqlanib qoladi.
🏛️#Milliy meros
@termizmuzey
Bugun O‘zbekiston Respublikasi Milliy Gvardiyasi Surxondaryo viloyati Qo‘riqlash boshqarmasi Termiz shahar Qo‘riqlash bo‘limi xodimlari muzeyimizga tashrif buyurishdi.
Tashrif davomida ular muzeydagi tarixiy eksponatlar, milliy merosimiz va madaniy qadriyatlar bilan yaqindan tanishishdi. Bunday tashriflar nafaqat bilim, balki vatanparvarlik ruhini yuksaltirishga ham xizmat qiladi.
🏛️#Milliy meros
https://t.me/termizmuzey
#Milliy телеканали #zarb ток-шоусида илк бор иштироқ этдим.
Конституцияда тадбиркорлик бўйича қандай ўзгартиришлар қабул қилинди?
Ўзи Конституция ишлаяптими? - деган саволларга ҳам батафсил изоҳ ва жавоб беришга ҳаракат қилдим.
@bahodir_schastlivchik