Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
⠀
🤍🖤 Шэрон Стоун для Harper's Bazaar, 2025
⠀
💬 «Сегодня, когда по телевизору показывают сексуальные сцены, я их проматываю. Я не хочу этого видеть. Я не хочу проходить через всю эту прямолинейную, грубую сексуальность. Они крадут моё воображение. Я лучше предпочту томление, таинственность, желание»
⠀
❓Согласны ли вы с высказыванием актрисы или считаете, что такая «прямолинейность» соответствует своему времени?
⠀
#ШэронСтоун#SharonStone
🎬📷 На съемочной площадке фильма «Специалист».
Этот боевик примечателен в том числе и чувственной сценой в душе между Сильвестром Сталлоне и Шэрон Стоун. Актриса наотрез отказывалась в ней сниматься — после ролей в «Основном инстинкте» и «Щепке» ей больше не хотелось раздеваться в кадре. Однако Слаю удалось её уговорить, и вот как это было по его словам:
«Я не хотел заниматься этой сценой, потому что Шэрон не сотрудничала. Мы пришли на съемочную площадку, и тут она отказалась снимать с себя халат. Режиссёр попросил остаться только несколько человек из группы, и она все равно не снимает его. Я уже обещал ей, что не позволю себе никаких вольностей, так в чем проблема? Она сказала: «Меня просто тошнит от обнаженки». Я спросил ее, не могло бы ее тошнить от этого на фильме у кого-нибудь другого. У нее ничего не было, поэтому я сходил в свой трейлер и принес бутылку водки «Черная смерть», которую дал мне Майкл Дуглас, и после полудюжины шотов мы были мокрыми и дикими».
#ВИДЕОТЕКА
#SylvesterStallone
#SharonStone
🎬📷 На съемочной площадке фильма «Вспомнить все».
В этот день ровно 35 лет назад легендарный фантастический боевик Пола Верхувена вышел на экраны.
#ВИДЕОТЕКА
#PaulVerhoeven
#ArnoldSchwarzenegger
#SharonStone
#TotalRecall
#ВспомнитьВсе