Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Hurmatli ayollar! CNC electric kompaniyasi nomidan sizni Xalqaro xotin-qizlar kuni bilan tabriklaymiz. Har bir kuningiz baxt va quvonchga to'la bo’lsin. Barcha ko’zlagan maqsadlaringizga erishishingizni, oilangizga farovonlik, muvaffaqiyat va yutuqlar tilaymiz. Sizlar — bizning hayotiy kuchimiz, muhabbat va go'zallik manbaisiz! Sizga va yaqinlaringizga chin qalbdan eng ezgu niyatlarimizni tilaymiz. 💐
Дорогие дамы! От имени компании CNC electric поздравляем Вас с Международным женским днем. Пусть каждый Ваш день будет наполнен счастьем и радостью. Желаем Вам достижения всех поставленных целей, семейного благополучия и успехов. Вы – наш источник жизненной силы, любви и красоты! От всей души желаем Вам и Вашим близким всего наилучшего. 💐
Telegram|Instagram|Facebook|Youtube|Website|Email
#cnc#cncelectric#cncuzbekistan#cnctashkent#elcomelectric#elcom
Qadrli do'stlar!
2021 yil 18 iyun kuni CNC Uzbekistan jamoasi va Electro Group a'zolari bilan birgalikda Marg'ilon shahrida bo'lib o'tadigan seminar dasturimizga taklif etamiz. Seminarda ko'rgazmali qurollardan foydalangan holda taqdimotlar, labaratoriya sinov jarayolari va qiziqarli viktorina bo'lib o'tadi.
Manzil: Marg'ilon shaxri, Raqamli texnologiyalar markazi.
Murojat uchun telefonlar: +99891 666 7666, +99899 843 0030, +99899 844 0030
Дорогие друзья!
Приглашаем Вас на семинар, организованный командой CNС Uzbekistan и участниками Electro Group, который состоится 18 июня 2021 года в городе Маргилане. На семинаре будут представлены презентации с использованием наглядных пособий, результаты и процессы лабораторного тестирования и интересная викторина.
Адрес: г. Маргилан, Центр цифровых технологий.
Контактные телефоны: +99891666 7666, +99899 843 0030, +99899 844 0030
Telegram|Instagram|Facebook|Youtube|Website|Email
#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#elcomelectric#elcom#автоматика
Qadrli do'stlar, sizlarni chin qalbimizdan Navro'z bayrami bilan tabriklaymiz! Ushbu bahoriy kunda tuganmas baxt, xotirjamlik, ezgulik va farovonlik tilaymiz. Har bir oilada quvonch va farovonlik hukmron bo'lsin.
CNC Uzbekistan kompaniyasi nomidan har biringizga ko'rsatilgan ishonch, e'tibor va samarali hamkorlik uchun minnatdorlik bildiramiz.
Дорогие друзья, от всей души поздравляем Вас с праздником Навруз! В этот весенний день мы хотим пожелать Вам безграничного счастья, мира, добра и процветания. Пусть в каждой семье царит радость и благополучие. Компания CNC Uzbekistan благодарит каждого за оказанное доверие, проявленное внимание и плодотворное сотрудничество.
Telegram|Instagram|Facebook|Youtube|Website|Email
#21mart#navruz#cnc#cncelectric#cncuzbekistan#cnctashkent#elcomelectric#elcom
Aziz do'stlar! CNC electric Global Stroy do'konimizga barchangizni taklif qilib qolamiz!
+99899 881 22 10 Aziz
Дорогие друзья! Всех приглашаем на новый магазин CNC electric в торговом комплексе Global Stroy!
+99899 881 22 10 Азиз
Telegram|Instagram|Facebook|Youtube|Website|Email
#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#elcomelectric#elcom#автоматика#электрика#электрик#электрощит
Assalomu alaykum qadrli do'stlar!
2021 yil 9 noyabr kuni "Do'stona futbol musobaqasi"ning yakuniy final bosqichi ajoyib va qiziqarli tarzda bo'lib o'tdi.
Natijalarga ko'ra:
1 - o'rinni Chint electric jamoasi
2 - o'rinni CNC electric jamoasi
3 - o'rinni Dusel electrical jamoasi
4 - o'rinni Prime electrotechnica jamoasi
5 - orinni Electro group jamoasi egalladi.
Shu o'rinda musobaqa tashkilotchilari, ishtirokchilari va muxlislariga o'z minnatdorchiligimizni bildirib qolamiz. Kelgusida shu kabi musobaqalarni tez-tez o'tkazish va do'stona kayfiyatni saqlab qolamiz degan umitdamiz.
Доброго времени суток дорогие друзья!
9 ноября 2021 года красиво и увлекательно прошёл финал «Товарищеского турнира по футболу».
По результатам:
1 место команда Chint electric
2 место команда CNC electric
3 место команда Dusel electrical
4 место команда Prime electrotechnica
5 место команда Electro group
Хотим выразить благодарность организаторам, участникам и болельщикам конкурса. Надеемся в будущем проводить подобные соревнования чаще и поддержать дружескую атмосферу.
Telegram|Instagram|Facebook|Youtube|Website|Email
#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#elcomelectric#elcom#автоматика#электрика#электрик#электрощит
Impulsli rele YCIR - ikki simli tarmoqni elektr yoritgich jihozlarini bir nechta joylardan parallel ravishda ulangan kalitlarga biriktirmasdan boshqarish uchun mo'ljallangan. Bu sizga nazorat qilish sxemasini soddalashtirishga, tarmoqdagi yo'qotishlarni kamaytirishga, shuningdek, kabelning sonini kamaytirishga imkon beradi.
Импульсные реле YCIR предназначены для управления по двухпроводной сети осветительным и другим электротехническим оборудованием из нескольких мест при помощи параллельно соединенных выключателей без фиксации. Это позволяет упростить схему управления,уменьшить потери в сети, а также сократить количество прокладываемого кабеля по сравнению со схемой с проходными выключателями.
Telegram|Instagram|Facebook|Youtube|Website|Email
#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#elcomelectric#elcom#автоматика#электрика#электрик#электрощит
AVR monoblok YCS1 - asosiy va zahira kirishiga ega bo'lgan elektr ta'minot tizimiga ulangan istemolchini uzluksiz elektr ta'minoti bilan ta'minlash uchun mo'ljallangan.
Автоматический ввод резерва YCS1 предназначено для обеспечения резервным электроснабжением нагрузки, подключенной к системе электроснабжения, имеющей основной и резервный вводы.
Telegram|Instagram|Facebook|Youtube|Website|Email
#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#elcomelectric#elcom#автоматика#электрика#электрик#электрощит
Ko'p funktsiyali avtomatik o’chirgich YCB9-ZF - peregruz, qisqa tutashuv, ochiq tok oqimi, masofadan yoqish va o'chirish, vaqt va boshqa funktsiyalarni o’z ichiga oluvchi qurilma.
Многофункциональный автоматический выключатель YCB9-ZF объединяет функции реле напряжения, перегрузки, короткого замыкания цепи, утечка, дистанционное включение и выключение, время, и т. д.
Telegram|Instagram|Facebook|Youtube|Website|Email
#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#elcomelectric#elcom#автоматика#электрика#электрик#электрощит
Модульный выключатель нагрузки YCH6Z предназначены для оперативного управления участками электрических цепей. Выключатели производятся в одно-, двух-, трех четырёхколёсном исполнениях. Выключатели нагрузки YCH6Z выполнены в новом, уникальном дизайне корпуса из не горюющей пластмассы.
Telegram|Instagram|Facebook|Youtube|Website|Email
#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#elcomelectric#elcom#автоматика#электрика#электрик#электрощит
Модульная арматура сигнальная ADM-1\ADM-3 - Аппаратура управления предназначается для оперативного управления технологическим оборудованием и индикации состояния электрических цепей и устанавливается, например, в DIN-рейках, вводно-распределительных устройствах, устройствах автоматического включения резерва, станциях и т.д.
Устройство защиты от импульсных перенапряжений YCS6- D\C (УЗИП) предназначено для ограничения переходных перенапряжений и отвода импульсов тока в сетях переменного тока частоты 50 Гц. Возможна коммутация алюминиевым и медным проводом.
Telegram|Instagram|Facebook|Youtube|Website|Email
#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#elcomelectric#elcom#автоматика#электрика#электрик#электрощит
Qadrli do'stlar!
Sizning etiboringizga CNC ELECTRIC kompaniyasining quyidagi yangi mahsulotlarini taqdim etamiz:
- Modulli yorug’lik signal armaturasi ADM-1\ADM-3
- Impulsli kuchlanish himoya qilish qurilmasi YCS6- D \ C
- Uch tomonli perekluchatel YCBZ
- Modulli yuklama o’chirgichi YCH6Z
- Ko'p funktsiyali avtomatik o’chirgich YCB9-ZF
- AVR monoblok YCS1
- Impulsli rele YCIR
Qo'shimcha texnik tavsif va maslahat uchun ☎️ 71 228 02 11 raqamiga qo'ng'iroq qilishingiz mumkin
Дорогие друзья!
Представляем Вашему внимаю следующие новинки продукции от компании CNC ELECTRIC:
- Модульная арматура сигнальная ADM-1\ADM-3
- Устройство защиты от импульсных перенапряжений YCS6- D \ C
- Трёхпозиционный переключатель YCBZ
- Модульный выключатель нагрузки YCH6Z
- Многофункциональный автоматический выключатель YCB9-ZF
- АВР моноблок YCS1
- Импульсное реле YCIR
За более подробной технической характеристикой и консультацией можете связаться по телефону ☎️ 71 228 02 11
Telegram|Instagram|Facebook|Youtube|Website|Email
#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#elcomelectric#elcom#автоматика#электрика#электрик#электрощит