Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
В новом влоге 🇷🇺Team Spirit засветилась еще одна новинка от Zowie.
— Magixx назвал её OG-версией, возможно подразумевая обновлённую классику с улучшенными характеристиками
☕️
🟡Другие новинки: Парни упомянули, что у них на руках есть и другие невыпущенные мышки, которые еще не были анонсированы.
🟡Персональная модель для Sh1ro: Ходят слухи, что для Дмитрия так же выпустят обновленную модель.
🟡Именные девайсы для всей команды: Похоже, Zowie могут выпустить персональные девайсы для каждого игрока состава Team Spirit.
Интересно будет посмотреть, что в итоге выйдет. Ждем ⏰
САЙТ • МЕНЕДЖЕР • #ZOWIE
На вчерашнем матче Donk🇷🇺 был замечен с новой мышкой. Причем не просто новой для него, а именно с не анонсированной моделью от Zowie🤔
❗️Из интересного, у мыши отсутствуют боковые кнопки. Это кажется странным для современного рынка, но многим игрокам такая особенность нужна для лучшего контроля. Для Данила это, скорее всего, именно то, что он искал. Учитывая его специфический хват, который сформировался за годы игры (ладонь почти полностью лежит на корпусе) Можно предположить, что при таком хвате, не просто использование, а даже наличие боковых кнопок может банально мешать удобству и мелкому контролю.
❗️Форма мышки взята от существующей модели U2 и есть предположение что это ее уменьшенная версия — U3.
— Но пошла ли обновка Данилу на пользу? Загадка. Так как вчера был его 3 худший матч в карьере (1.10 рейтинг📉).
А пока ожидаем подробности, вы можете приобрести одну из существующих моделей у нас на сайте 👉ReShip.pro
САЙТ • МЕНЕДЖЕР • #ZOWIE
🍟Новая линейка белых мышекZOWIE DW GLOSSY
Доступные модели:
🔴EC-DW (все размеры)
🔴S2-DW
🔴U2-DW
🔴ZA-13
🔴FK2-DW
— Сейчас их быстро разбирают — уточняйте наличие у менеджеров во избежание возвратов @reshipmng
💸Добавлены на сайт Под заказ со скидкой 7%
САЙТ • МЕНЕДЖЕР • #ZOWIE
✔️Коврик, который выбирают профессионалы — Zowie G-SR-SE
- Поверхность с плавным скольжением и стабильным контролем для точных движений
- Стойкость к влаге обеспечит одинаковую скорость в любым условиях
- Бесшовные края исключают царапание руки и обеспечивают комфорт
- Средняя мягкость резиновой подложки придает отличные тормозящие свойства для максимальной точности
Принт коврика никак не повлияет на скорость глайда и не испортится со временем 😉
💵Цена 5.490₽
ОФОРМИТЬ ЗАКАЗ • КАТАЛОГ • #ZOWIE