Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Доброе утро!
Коммунальным службам нужны надёжные трактора с рабочими органами, сегодня ещё один Zoomlion RN904 оправился в самое сердце Санкт-Петербурга, где будет в сезон осуществлять уборку территории.
@zoomlion_ag_russia#коммуналка
#агромаг#zoomlionrn904
Доброго понедельника!
Мы снова отгружаем!
Трактор Zoomlion RN904 PRO отправился к клиенту где будет работать в коммунальной сфере.
#zoomlionRN904#agromag#Агромаг@zoomlion_ag_russia#коммуналка
Для работы трактора в ограниченном по высоте пространстве найдено решение на трактора Zoomlion RN904 в виде колес с занижением высоты.
Была поставлена задача уменьшить стандартную высоту трактора до 20 см, благодаря дополнительному комплекту колес нам это удалось и трактор был отгружен Клиенту для работы на кормлении.
#Агромаг#Zoomlion#ZoomlionRN904#низкийтрактор
Компания "Агромаг" приглашает всех посетить выставку ЖКХ России с 24 по 26 апреля в выставочном центре Экспофорум.
На нашем стенде вы сможете увидеть трактор Zoomlion RN904 с отвалом и щеткой для коммунальных служб. Только у нас вы сможете узнать все особенности этой универсальной техники и получить консультацию от наших экспертов. Ждем вас на нашем стенде! 🚜
#Агромаг#ВыставкаЖКХРоссии#ZoomlionRN904@Zoomlion_AG_Russia#КоммунальныеУслуги
Отгрузки тракторов Zoomlion каждый месяц
Сегодня Отгрузили два трактора Zoomlion RN904.
Один в комплектации с фронтальным погрузчиком Metal Fach для универсальных работ. В хозяйстве уже трудятся трактора Zoomlion где зарекомендовали себя как надежные и не прихотливые машины.
Теперь с появлением новых тракторов у клиента будет еще больше возможностей для эффективной работы на полях.
Мы уверены, что эти приобретения помогут увеличить производительность и сделать хозяйство еще успешнее.🚜💪
Спасибо за доверие к компании Агромаг.
#новыетрактора@Zoomlion_AG_Russia#эффективнаяработа#zoomlionRN904#Агромаг
Отгрузки Zoomlion, продолжаются!
Сегодня отгрузили Zoomlion RN904.
Это уже второй трактор данной модели у клиента!
Отличная замена МТЗ 82, в базовой комплектации имеется Кондиционер, балластные грузы, пневмотормоз, распределитель с фиксирующим и плавающим положением, усиленный балочным мост и топливная система Common Rail!
#Agromag#Агромаг@Zoomlion_AG_Russia#ZoomlionRN904#RN904#заменаМТЗ#МТЗ82
Стартует второй день выставки #ЖкхРоссии.
Представленный нами трактор Zoomlion RN904 произвел благоприятное впечатление своей надежностью, функциональностью и высоким качеством. Многие представители компаний ЖКХ уже заявили о готовности рассмотреть возможность включения данного трактора в свой парк техники.
Напоминаем что выставка продлится до 26.04.24 Экспофорум Павильон F, Ждём всех желающих.
#Zoomlion_AG_Russia#Agromag#Агромаг#ZoomlionRN904#выставкажкхроссии
Ещё одно видео показывающее запас мощности, веса и соответственно тягового усилия, нашего трактора Zoomlion RN904.
Многие скажут, что тест не объективный и я где-то соглашусь, НО Zoomlion тащит в горку!!)
#ZoomlionRN904#RN904#Zoomlionpower#agrimachinery#agriculture#агротехника#трактор
Для коммунальных работ, мы подготовили различные варианты агрегатирования наших тракторов.
Фронтальные погрузчики с отвалами для снега, ковшами и другими рабочими органами.
Гидроповоротный Отвал через прицепное устройство. Щётки с системой орошения и бункером накопителем. Под любые задачи, мы подготовим трактор Zoomlion.
#zoomlion#мкуzoomlion#машинакоммунальноуборочная
#zoomlionrn904#zoomlionRS1304#отвал#ковш#пнуzoomlion