Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🎃✨ ХЕЛЛОУИНСКИЙ РОЗЫГРЫШ #magicalpower! ✨🦇
Готова почувствовать себя настоящей ведьмочкой из Trix? 💜 В честь Хеллоуина мы приготовили 3 магических подарка 🧚♀️
Хочешь увеличить шансы? Приглашай друзей по реферальной ссылке, которую пришлёт бот! Каждый подписавшийся +1 шанс на победу! 🔮
💫 Разыгрываем три бокса из наборов: подарочный набор Sisters Power Gift Set и набор кистей Witch Essentials #magicalpower
👻 Как принять участие
1. Подписаться на канал @sodamakeup и не отписываться до окончания розыгрыша 🍂
2. Нажать кнопку "Участвовать" в конце поста 😶🌫️
Розыгрыш проводится на территории РФ.
🎃 Удачи всем феям и ведьмочкам ! 🌙
Участников: 1228
Призовых мест: 3
Дата розыгрыша: 18:00, 31.10.2025 MSK (завершён)
Победители розыгрыша:
1. Lillac - 46vopu
2. юля - 461i9i
3. ❤️ - 45tih7
Пришло время выбрать, на чьей ты стороне...
🌈 Нежность, яркость, очарование фей Винкс?
Познай магию дружбы и гори ярче звезд с Блум, Стеллой, Флорой, Музой, Текной и Лейлой!
⚡А может дерзость, загадка и темная эстетика Трикс?
Гипнотизируй, провоцируй и управляй вместе с Дарси, Сторми и Айси!
Какую бы бьюти-магию ты ни выбрала, главное, что ты с SODA — ведь только вместе мы сильны 💖
SODA x WINX: CHOOSE YOUR SIDE!
#magicalpower
🤩Нана Осаки одобряет! Твой рок-макияж с Soda 🤩
Эстетика Nana — это про страсть, музыку и бескомпромиссный стиль. Повтори фирменные черты Осаки Наны с нашими маст-хэвами:
🤩 Взгляд с характером: Кремовая подводка Miraculous, 301 или маркер S-CLASS, 201 regressor — плотный черный для глубокого, пронзительного взгляда.
🤩 Глубина цвета: Палетка Beware Of Witches #magicalpower даст нужные оттенки для создания фирменного smoky eye.
🤩 Губы: Нанеси вельветовую помаду Hypnotizing #magicalpower, 101 Riven для матового, драматичного эффекта.
🤩Детали: Добавь немного панка с металлическими заколками Fire Hearts!
Ready to rock? 🎸
#sodainspiration
А мы тут узнали, что ученые открыли новый цвет, Olo... И очень вдохновились! Он похож на Tiffany Blue и бирюзовый Pantone 15-5519, но по сравнению с Olo они менее насыщенные ❤️
Вне лаборатории его пока не увидеть, но мы на 99% уверены, что уже видели что-то похожее в коллекции SODA x WINX 🤔
#sodainspiration#magicalpower
А ведь мы еще не разыгрывали аксессуары из новой коллекции 👀 Пора это исправить!
Разыгрываем три бокса, в каждом будет три аксессуара, тинт и жидкие тени 💕
Как поучаствовать?
1. Подписаться на канал @sodamakeup и не отписываться от него до окончания розыгрыша ☀️
2. Нажать кнопку "Участвовать" в конце поста
😍
⚡ Кстати, если вы хотите повысить свои шансы на победу, то приглашайте друзей подписаться по реферальной ссылке, которую пришлет бот. Каждый подписавшийся по вашей ссылке это +1 шанс!
*Розыгрыш проводится на территории РФ.
💏 Результаты 26 апреля в 18:00 по мск, будет 3 победителя!
Всем удачи 💋
#sodateam#magicalpower
Участников: 2384
Призовых мест: 3
Дата розыгрыша: 18:00, 26.04.2025 MSK (завершён)
Победители розыгрыша:
1. Настя . - 2vutr5
2. Наталия Седельникова - 312m6e
3. пустота - 2vt2bk
Новая коллекция требует розыгрыша, согласны?
❤️
Разыгрываем три бокса, в каждом будет три(!) новых палетки, жидкий хайлайтер с Блум Dragon Flame, помада с Блум Fire Vortex и палетка для лица с Флорой Swirl Of Petals 😘
Как поучаствовать?
1. Подписаться на канал @sodamakeup и не отписываться от него до окончания розыгрыша 🌸
2. Нажать кнопку "Участвую" в конце поста 🐾
3. Проявлять активность 😇
⚡️ Кстати, если вы хотите повысить свои шансы на победу, то приглашайте друзей подписаться по реферальной ссылке, которую пришлет бот. Каждый подписавшийся по вашей ссылке это +1 шанс!
*Розыгрыш проводится на территории РФ.
🫦 Результаты 1 апреля в 18:00 по мск, будет 3 победителя!
Всем удачи 💋
#sodateam#magicalpower
Участников: 4243
Призовых мест: 3
Дата розыгрыша: 18:00, 01.04.2025 MSK (завершён)
Победители розыгрыша:
1. Мария - 2p9n8m
2. 𝒪𝓂𝑔 𝒳𝒟 #ℳℛ𝒦𝒮 #𝒮𝒲ℰℰℰ𝒢 #+ℛ𝒶𝓅 - 2p991c
3. Ефим Кондаков - 2pbe66
Ну вот, теперь все секреты раскрыты! Угадали цвета палетки? Уже думаете над образами, которые с ней можно создать? ☺️
Между нами, новая коллекция уже стоит в моно бутике Soda в Авиапарке и разъезжается по летуалям, так что ожидайте в своём городе 😉
#sodateam#magicalpower
Наконец-то и на улице весна, поэтому спешим доставать обе палетки с феечками для поиска всех-всех розовых оттенков: Heart of Alfea и Magical Dust 🌸
#magicalpower#sodatips
Зима вернулась на улицы только для того, чтобы мы показали макияж в стиле Айси новой палеткой Beware Of Witches❄️
Повторяем, пока снег лежит?
#magicalpower#sodatips