Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Delever и Yaponamama.uz
С энтузиазмом объявляем о запуске стратегического партнёрства между Delever и Yaponamama.uz. Это партнерство представляет собой важный шаг в расширении нашего портфеля и усилении присутствия на рынке Узбекистана.
Yaponamama.uz, известный своим качественным сервисом и изысканным меню японской кухни, выбрал Delever в качестве партнера для оптимизации и автоматизации своих процессов доставки. Мы будем поддерживать Yaponamama.uz с помощью нашей передовой технологии и опыта в управлении заказами, что позволит им улучшить качество обслуживания и увеличить объемы продаж.
Мы гордимся тем, что Yaponamama.uz доверяет нам укрепление своей операционной деятельности и с нетерпением ждем результатов нашего совместного сотрудничества. Следите за обновлениями, ведь впереди нас ждут захватывающие проекты и инициативы!
#partnership#innovation#fooddelivery#Delever#Yaponamama
🚀 Отличные новости из Узбекистана и Казахстана!
Привет, друзья! Давно не делился апдейтами — всё потому, что Delever растёт быстрее, чем я успеваю писать.
Мы уверенно укрепляем позиции в регионе:
👉 Уже 500+ ресторанов доверяют нам в Узбекистане
👉 В Казахстане — 300+ подключённых заведений!
📈 Плотность сети растёт, открываются новые города и каналы. И что особенно вдохновляет — с нами теперь работают флагманы индустрии:
✨ABR Group — более 15 ресторанных концепций, 13 лет на рынке, 50 заведений и 7+ млн гостей в год.
✨San Group — холдинг Александра Орлова, динамично развивающийся в Узбекистане и Казахстане. Среди брендов: Mannana, Cucucina, Nika, TKX.
✨Doner na Satpayeva — наш партнёр, с которым мы вместе выросли с 11 до 17 филиалов. Настоящий кейс масштабирования!
✨Black Star Burger — премиум-вкус по доступной цене, авторская рецептура и крутая культура.
✨ Cheeseria — тёплая Италия в центре города. Изысканный вкус и гостеприимство.
💡 Это только часть — и мы продолжаем двигаться дальше. Впереди много работы, новых стран, партнёров и технологий.
Благодарю всех наших клиентов, партнёров, команду и друзей — без вас этот рост был бы невозможен ❤️
Если вы ресторатор, интегратор или просто верите в умные решения — давайте объединяться.
📬 Готов пообщаться, рассказать больше, найти точки роста.
#Delever#FoodTech#HoReCa#Kazakhstan#Uzbekistan#рост#автоматизация#доставка#CRM#QSR#DigitalTransformation