Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Уже слышен лёгкий топот копыт и мы готовы встречать Новый год, несущий утончённость и благородство Огненной Лошади.🌟
Встретьте его в безупречном и уверенном стиле, воплощённом в коллекции Balmain - сейчас на неё действуют скидки до –50%.🌟
Balmain
Ждём вас за главным образом года в бутике WISTERIA.🌟
📍г.Москва , Хамовники
Саввинская набережная 13
#WISTERIA#Balmain#премиумбренды
Эстетика нишевых модных брендов.
В то время как некоторые модные дома постоянно находятся в поисках вдохновения и новых форм подачи своих работ, другие дизайнеры развивают особую аутентичную эстетику, свой стиль и подход к созданию продукта. Это делает их работы интересными и узнаваемыми.
Например, любой, кто знаком с творчеством «Iris Van Herpen», «Issey Miyake», «Balmain», или «Dolce & Gabanna», сможет сразу же узнать их работы из множества, настолько ясны аудитории их концепции. То же самое можно сказать и о модном доме «Heaven Gaia».
Уже много лет бренд использует в работах легкий текстиль и технику окрашивания омбре. Получившиеся в результате образы имеют уникальное качество, благодаря которому их легко распознать. Помимо этого, дизайнеры стремятся к созданию работ, которые станут искусством вне времени. Все это усиливает неземное впечатление от модных творений.
#fashion#мода#модныедома#высокаямода#дизайнер#dolchegabanna#balmain#heavengaia#нишеваямода#культура#бренды#модныебренды
Фото: с показа «Heaven Gaia» весна-лето 2021
https://www.attiresmind.blogspot.com