Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
📺 - SHIFTING GEARS - 📺
Título original: Shifting Gears
Título Alternativo: Cambiando Marchas
Género:#Comedia#Familiar#Drama
Temporadas: 2 📼
Año: 2025 - presente
Origen: EEUU 🇺🇸
Tráiler:youtu.be/cgGK3AQf3Cw
Sinopsis:
Matt, un viudo testarudo, dirige un taller de coches clásicos. Su vida da un giro inesperado cuando su hija separada y sus hijos adolescentes se mudan con él. Entre choques generacionales, humor y emociones, la familia aprende a reconstruir sus lazos mientras enfrentan los retos de la convivencia.
Disponible:Disney+
@SeriesClubHD
🎬Sonic 2: O Filme (2022)
Gênero: #Ação, #Aventura , #Comedia, #Familiar
⭐️ IMDb: 6.5
⏳ Duração: 2 h 02 min
📝 Sinopse:
Quando o Dr. Robotnik retorna com um novo parceiro, Knuckles, em busca de uma esmeralda que tem o poder de destruir civilizações, Sonic se une ao seu próprio ajudante, Tails, em uma jornada pelo mundo para encontrar a esmeralda antes.
Fonte: IMDb
🔵Inscreva-se em @Assistir
*Patrocinado: Anime Bot
📺 - FIND E SEMANA EN FAMILIA - 📺
Título original: Week-end Family
Título Alternativo: Familia De Fin De Semana
Género:#Comedia#Familiar#Romántica
Temporadas: 2 📼
Año: 2022 - 2023
Origen: Francia 🇫🇷
Tráiler:youtu.be/brRQbVje1lk
Sinopsis:
Fred, un padre divertido y caótico, pasa los fines de semana con sus tres hijas de diferentes madres. Cuando su nueva pareja se une a la familia, todos deberán aprender a convivir en un ambiente lleno de humor y cariño.
Disponible:Disney+
@SeriesClubHD
Apollo 10½: A Space Age Adventure
📅Año 2022
⏱Duración 90min.
🎥Dirección#RichardLinklater
📄Guion Richard Linklater
🌄Fotografía Shane F. Kelly
🎬Productora Detour Filmproduction, Submarine, Minnow Mountain.
🚚Distribuidora Netflix
Género#Animación#Aventuras#Comedia#Drama#Cienciaficción#AventuraEspacial#Infancia#Familiar#Años60
Reparto | Trailer | Sinopsis
Ver Aquí
AnexoAnimación | Drama | Aventura | Comedia | Familiar | SciFi