Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🏦💳💲💳💲💰🏦💲🏦💰🏦💳🏦
🌟🌟🌟🌟🌟🌟🌟
Transferencias internacionales Instantáneas por PayPal, Zelle, Albo, etc...
✅ Cualquier moneda
✅ Desde cualquier país
5️⃣😶
Por cada 💲5️⃣2️⃣5️⃣🔤🔤🔤🇺🇸
Reciba 💲
✏️
✏️
✏️
✏️
✏️
✏️🇨🇺
1️⃣0️⃣😶
Por cada 💲2️⃣7️⃣5️⃣🔤🔤🔤🇺🇸
Reciba 💲
✏️
✏️
✏️
✏️
✏️
✏️🇨🇺
2️⃣0️⃣😶
Por cada 💲1️⃣2️⃣0️⃣🔤🔤🔤🇺🇸
Reciba 💲
✏️
✏️
✏️
✏️
✏️
✏️🇨🇺
2️⃣5️⃣😶
Por cada 💲2️⃣5️⃣🔤🔤🔤🇺🇸
Reciba 💲
✏️
✏️
✏️
✏️
✏️🇨🇺
⊱✿⊰─━━━━━━⊱✿⊰━━━━━━─⊱✿⊰
Tratos presenciales
en La Habana
También puede recibir CUP al cambio promedio diario entre MLC y CUP que publique 👉eltoque.com
👍@jcslimcuba
👍https://wa.me/5353717679
👍https://m.me/jcslimcuba.fb
☎️ +5353717679
#transferencia#remesa#mlc#usd
Remesa transferencia mlc usd
🚀 Remesas a Cuba 🇨🇺 ¿Necesitas enviar dinero 💸 de forma rápida ⚡️ y segura 🔒? ¡Somos tu agencia ideal ✅!
👉🏻( WhatsApp +16072139643 ) 📱o usa el enlace directo ( https://wa.pe/te1mak)
💲 Entregamos en todas las monedas, USD, CUP, MLC, TARJETA CLÁSICA, EUROS 💵
💳 Transferencias al instante⚡️
💸 Entrega en tarjeta o efectivo de forma presencial, con mensajería a toda la Habana 🚴
🤔¿Existe monto mínimo para enviar dinero a Cuba? 💪🏻 *NO* , CON NOSOTROS PUEDES ENVIAR CUALQUIER CANTIDAD🫶🏻
😵💫Descuentos increíbles a partir de 500 USD en adelante. 🥸
📱Únete a nuestro grupo de WhatsApp 👇👇👇
https://chat.whatsapp.com/HtdHSLf14YhLL8ToJO2AWQ
____
🏦Puedes pagar con: PayPal ,Zelle ,CashApp, Bizum ,Transferencias SEPA, Wise ,Visa/MasterCard, Transferencia México
____
Tu comodidad es nuestra prioridad😏😁.
📱Contáctanos al +16072139643, será un gusto atenderte:
https://wa.pe/te1mak
#remesa#transacción#remesacuba#metodosdepago#EnvíaDinero#Cuba#España#Europa#EstadosUnidos#Bizum#zelle#cashapp#Paypal#Visa#transferencia#efectivo#dolares#USD#Sepa#transferenciabancaria#DineroCuba#Cuba#cubanosporelmundo
#remesasespaña
••••••••••••• 🔺 •••••••••••••
Promocionado por Anuncios-cu.com
••••••••••••••••••••••••••••••••