Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Выгодное предложение для партнёров и покупателей холодильных камер на портале PolairPro
Успейте рассчитать и оплатить камеру по новым приятным ценам и со старым НДС до конца этого года, сохранив экономию на закупке и планируемых проектах. Это отличная возможность закрыть год с максимальной выгодой и заранее подготовить заказы на начало следующего сезона.
Кроме того, на портале уже доступен обновлённый прайс-лист - теперь снова с артикулами, как было раньше, что делает подбор оборудования проще и привычнее.
Заходите на PolairPro, рассчитывайте желаемую конфигурацию камер, скачивайте актуальный прайс-лист и оформляйте заказ до 30 декабря 2025г.
Не откладывайте решение!
Сделайте самое выгодное вложение в ваш бизнес уже сегодня!
#polair#polairPro
Polair – надежность, качество, стабильность!
Получи доступ к специальной акции по холодильным камерам!
Рассчитай камеру в онлайн-сервисе Polair Pro и узнай о специальных условиях в разделе «Уведомления»*.
*Раздел «Уведомления» расположен слева в меню, под профилем пользователя.
#polair#polairpro
Polair — надежность, качество, стабильность!
Получи доступ к специальной акции по холодильным камерам!
Рассчитай камеру в онлайн-сервисе Polair Pro и узнай о специальных условиях в разделе «Уведомления»*.
*Раздел «Уведомления» расположен слева в меню, под профилем пользователя.
#polair#polairpro
Polair — надежность, качество, стабильность!
Под Новый, под Новый, под Новый Год мне Дед Мороз....
Пока вы строили планы на будущий год, мы сохранили для вас прошлогодние цены на холодильные камеры! Это как получить подарок с опозданием, но ещё более ценный.
Еще несколько дней у вас есть шанс оформить на портале PolairPro заказ на современные камеры Polair по ценам, которые, казалось, уже канули в Лету.
Не упустите этот волшебный момент:
✅Рассчитайте камеру на нашем портале
✅Зафиксируйте выгодную стоимость
✅Получите оборудование в установленные сроки
Пусть магия старого праздника принесёт вам новые возможности! Сделайте шаг в успешный год вместе с Polair!
#polair#камеры#PolairPro
Polair – надежность, качество, стабильность!