Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
El tipo de cambio publicado por el BCV es el promedio ponderado resultante de las operaciones diarias de las mesas de cambio activas de las instituciones bancarias participantes.
EUR. 440,47684950
CNY. 53,27401438
TRY. 8,51257385
RUB. 4,87376281
USD. 370,25440000 (+2,75 bs.)
@DolarBCV
Fecha Valor: Lunes, 02 #Febrero 2026
El tipo de cambio publicado por el BCV es el promedio ponderado resultante de las operaciones diarias de las mesas de cambio activas de las instituciones bancarias participantes.
EUR. 60,62949438
CNY. 8,06097762
TRY. 1,62990593
RUB. 0,59295299
USD. 58,44370000
Fecha Valor: Lunes, 03 #Febrero 2025
☃️❄️ Bienvenido #febrero❄️☃️
🥳 Muchas felicidades 🎊
para todos los
♒ Acuario 🌊 y ♓ Piscis
que cumplen
años este mes
☝🏻Acá les dejamos una ✨#frase motivacional✨🤲💖
☃️❄️ Bienvenido #febrero❄️☃️
🥳 Muchas felicidades 🎊
para todos los
♒ Acuario 🌊 y ♓ Piscis
que cumplen
años este mes
☝🏻Acá les dejamos una ✨#frase motivacional✨🤲💖
Recuerden que si hacen un pedido en su cumpleaños reciben un DESCUENTO 🎂
Y con este sorteo de fidelidad 🤜🤛, solo para clientes y en agradecimiento por su apoyo estos años, damos inicio al mes de febrero.
☃️❄️ Bienvenido #febrero❄️☃️
🥳 Muchas felicidades 🎊
para todos los
♒ Acuario 🌊 y ♓ Piscis
que cumplen
años este mes
☝🏻Acá les dejamos una ✨#frase motivacional✨🤲💖
AFECTADO VACUNA GRIPE GANA JUICIO 😁😁🏆y cobra 400.000€😍❗️
💉📡🔬🧲🔥🔥🔥
🔺INDEMNIZADO CON 400.000€ por lesiones tras vacunarse de gripe
🔺El abogado Francesc Feliu explica un caso real llevado hasta el Tribunal Supremo: un hombre que, tras vacunarse de la gripe, desarrolló una discapacidad del 85% y solo obtuvo reconocimiento después de denunciar hasta en tres ocasiones .
💉📡💀📡🛜🔥🆘🆘❗️
Continúa el democidio
DENUNCIA INTOXICACIÓN MASIVA VACUNAS PARLAMENTO💉📡🔬🧲📡💀
https://x.com/la5acolumna/status/1924582374811078906 Nunca fue por tu bien te engañaron no hay beneficio riesgo
🔬💀💉👁
visita:
https://www.laquintacolumna.info/directo-nocturno-habitual/directo-nocturno-de-la-quinta-columna-programa-617/
[email protected] 👆👆
💉☠️🧲🪦📡🆘🆘🆘
@AFECTADOS_VACUNACOV
#repentinitis
#diedsuddenly
#vacunas
#gripe
#juicios
#febrero