Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
👍Только для гостей нашего стенда LIVE демонстрация и полный разбор возможностей V12 и V12 Pro
➡️Регистрируйтесь на выставку с промокодом RBA2025 для бесплатного входа!
#Русбизнесавто#Higer#AutoBusExpo#V12#V12Pro
☄️ А мы продолжаем #AutoBusExpo
❗️3й день
▶️ Впервые в России — новейшие автобусы #HIGER V-серии:
✔️V12 Pro
✔️V12
🔝 Инновации, комфорт, стиль!
📌 Крокус Экспо, Пав. 2, Зал 6, стенд 6-400
❗️Бесплатный вход по промокоду: RBA2025
⚡️Успейте первыми увидеть автобусы будущего
#AutoBusExpo2025#Русбизнесавто#HIGER#АвтобусыБудущего#ВыставкаВМоскве
👀 Немного закулисья с выставки #AutoBusExpo
❗️Завтра открываем двери — ждём вас ✨
🆕 Впервые в России — новейшие автобусы #HIGER V-серии:
✔️V12 Pro
✔️V12
🔝 Инновации, комфорт, стиль!
📌 Крокус Экспо, Пав. 2, Зал 6, стенд 6-400
🗓 19–22 августа | 10:00–18:00 (22-го до 16:00)
❗️Бесплатный вход по промокоду: RBA2025
🔥 Успейте первыми увидеть автобусы будущего
#AutoBusExpo2025#Русбизнесавто#HIGER#АвтобусыБудущего#ВыставкаВМоскве
💥 Друзья, встречайте новую эру комфорта и стиля 💥
❗️19–22 августа 2025 в Москве пройдет международная выставка #AutoBusExpo – приглашаем вас посетить стенд #Русбизнесавто🔝
📌 Крокус Экспо, Павильон 2, Зал 6, стенд 6-400
Московская обл., Красногорск, ул. Международная, 16
❗️Впервые в России – новое поколение туристических и междугородных автобусов #HIGER V-серии:
✔️ V12 Pro
✔️ KLQ6126LYA V12
➕ Инновационный дизайн
➕ Максимальный комфорт
➕ Передовые технологии
❗️График работы:
19–21 авг. - 10:00–18:00
22 авг. - 10:00–16:00
⚡️Не упустите шанс первыми увидеть будущее автобусных перевозок!
🙂 Ждем вас на нашем стенде!
Бесплатная регистрация по промокоду: RBA2025
#AutoBusExpo2025#HIGER#Русбизнесавто#АвтобусыБудущего#ВыставкаВМоскве
👇 Готовы к путешествию в новом формате? Пишите в комментариях – какие функции в автобусе для вас самые важные!
#Русбизнесавто#HIGER#эксклюзивный#дистрибьютор#автобус#выставка