Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🔒#Seguridad || Adriana Arroyo, hermana de Steven Medina, fue atacada por sicarios en el sur de Guayaquil el pasado viernes.
Los detalles ⬇️
https://www.radiopichincha.com/comite-desaparicion-forzada-asesinato-familiar-victima-caso-malvinas/
🔒#Seguridad || Violar la restricción nocturna no solo puede terminar en detención inmediata, sino también en procesos judiciales por desacato con penas de entre uno y tres años de prisión.
Los detalles ⬇️
https://www.radiopichincha.com/tres-prision-incumplir-toque-queda-ecuador/
🔒#Seguridad || La medida propuesta por el Gobierno Nacional arranca hoy (3 de mayo de 2026) a las 23:00 y se extenderá hasta el próximo 18 de este mes.
Los detalles ⬇️
https://www.radiopichincha.com/abc-toque-de-queda-quito/
🔒#Seguridad || Adriana Arroyo, hermana de Steven, torturado y asesinado en 2024, recibió disparos en la calle tercera de Las Malvinas en Guayaquil.
Los detalles ⬇️
https://www.radiopichincha.com/hermana-mayor-uno-de-ninos-caso-cuatro-malvinas-asesinada-guayaquil/
🔒#Seguridad || Las instituciones de educación superior deberán tomar medidas similares para resguardar a los estudiantes, profesores y personal administrativo.
Los detalles ⬇️
https://www.radiopichincha.com/toque-de-queda-jornadas-nocturnas-en-instituciones-educativas-deberan-concluir-a-las-2130/
🔒#Seguridad || En Machala, Buena Fe, Guayaquil y Quito, los sicariatos dejaron una huella trágica en medio del feriado.
Los detalles ⬇️
https://www.radiopichincha.com/hechos-violentos-feriado-resumen-nacional-urgente/
🔒#Seguridad || La investigación se centrará en los mensajes, llamadas y archivos guardados en los celulares, que podrían revelar la coordinación previa del asalto.
Los detalles ⬇️
https://www.radiopichincha.com/juez-autorizo-extraer-informacion-celulares-diablito-lara-asalto-armado/
🔒#Seguridad || El presidente Daniel Noboa decretó toque de queda nocturno en nueve provincias. La medida regirá del 3 al 18 de mayo, de 23:00 a 05:00. Solo podrán circular servicios de salud y fuerza pública.
Los detalles ⬇️
https://www.radiopichincha.com/gobierno-oficializa-toque-queda-nocturno-nueve-provincias/
🔒#Seguridad | El juez dispuso la intervención de defensores públicos para evitar nuevas postergaciones dentro de este proceso.
Los detalles 🔽
https://www.radiopichincha.com/caso-blasti-abril-audiencia-droga-empresa-familia-noboa/
🔒#Seguridad | Los crímenes ocurrieron en las ciudades costeras de Manta, Portoviejo, Chone, Machala y Santa Rosa.
Los detalles 🔽
https://www.radiopichincha.com/fin-semana-terror-15-personas-asesinadas-ataques-armados/
🔒#Seguridad | El cadáver fue encontrado en los asientos traseros de un carro abandonado en la ciudadela La Saiba. La Policía investiga las causas del fallecimiento.
Los detalles 🔽
https://www.radiopichincha.com/hallan-hombre-sin-vida-dentro-vehiculo-sur-guayaquil/
🔒#Seguridad | La Policía señaló que el bus no tenía las cámaras activadas, lo que ha dificultado identificar a los criminales.
Los detalles 🔽
https://www.radiopichincha.com/delincuentes-asesinaron-pasajero-bus-quevedo-balacera-manta/