Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
5 маяСербия присоединяется к единой платежной зоне SEPA
Теперь переводить евро между Сербией и другими странами Европы станет так же просто и дешево, как внутри страны. Больше не придется отдавать банкам по 20–50 евро за перевод из условной Германии – в системе SEPA комиссия составит всего 1–2 евро, а в ряде банков и вовсе 0.
Скорость тоже радикально изменится: деньги придут на счет в тот же день или на следующее утро. Ждать перевод по 3–5 дней больше не нужно. При этом вам не придется возиться со сложными настройками – банк сам распознает страну SEPA (их 41, включая весь ЕС, Черногорию и Албанию) и автоматически отправит платеж самым выгодным путем.
Важно помнить, что система работает только с евро. На данный момент 18 коммерческих банков Сербии уже завершают техническую подготовку. Главное – убедитесь, что ваш счет открыт именно в евро. Если перевод поступит на динарный счет, может произойти автоматическая конвертация по невыгодному курсу или отказ в платеже.
#Сербия#переводы#SEPA
@NewsSerbia
🚀 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
••••••••••••••••••••••••••••••••