Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Уважаемые учителя и наставники!
Команда CNC electric от всего сердца поздравляет Вас с профессиональным праздником. Хотим пожелать процветания, благополучия и творческого вдохновения.
Спасибо Вам за преданность, терпение и мудрость!
#songri#songrielectric#songriuzbekistan#cnc#cncelectric#cncuzbekistan#cnctashkent#digitop#digitopuzbekistan#teachersday
С новым 2022 годом!
Telegram|Instagram|Facebook|Youtube|Website|Email
#2022 #cnc#cncelectric#cncuzbekistan#cnctashkent#giant#elcomelectric#elcom#digitop#songri#автоматика#электрика#электрик#электрощит#электротехническаяпродукция
Aziz do’stlar !
@CNC_Gumbaz_Bozor da aksiya
500.000 so’m va undan ortiq miqdorda mahsulot harid qiling va biz Toshkent shahri bo’ylab bepul yetkazib beramiz !
‼️ Diqqat: Aksiya faqat CNC Electric Gumbaz bozori do’konida amal qiladi
Tel:
+998 97 120 07 16
+998 99 885 22 10 Arslon
Дорогие друзья!
В @CNC_Gumbaz_Bozor акция! Покупайте продукцию на сумму от 500 000 сумов и мы бесплатно доставим ваш товар по всему Ташкенту!
‼️ Внимание: Акция действует только в магазине CNC Electric Гумбаз базар
Тел .:
+998 97 120 07 16
+998 99 885 22 10 Арслон.
Telegram|Instagram|Facebook|Youtube|Website|Email
#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#elcomelectric#elcom#автоматика#семинар#electrogroup#electrouzbekistan#digitop#elcomelectric#songri
Серия SEU6 от компании Songri Electric Co., Ltd.
Основание сделано из прочного, огнестойкого поликарбоната, выдерживает температуру до 850° С. Металлическая опора толщиной 1 мм , обладает цинковым покрытием и антикоррозийными свойствами.
Увеличенный серебряный контакт делает продукт более надежным и безопасным.
Поверхность изделия выполнено из долговечного и высококачественного пластика. Идеальная форма и универсальный дизайн серии подойдет для любого дома.
Степень защиты - IP44.
📱Телефоны:
(99) 844-00-30 Эргаш
(99) 843-00-30 Сардор
📠факс/офис: (71) 228-02-11
🌐website: www.cncele.uz,
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#songri#songrielectric#songriuzbekistan#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#автоматика#электрика#электрик#электрощит#электротехническаяпродукция#electric#сборкащитов
Серия SEU5 от компании Songri Electric Co., Ltd.
Основание сделано из прочного, огнестойкого поликарбоната, выдерживает температуру до 850° С. Металлическая опора толщиной 1 мм , обладает цинковым покрытием и антикоррозийными свойствами.
Увеличенный серебряный контакт делает продукт более надежным и безопасным.
Поверхность изделия выполнено из долговечного и высококачественного пластика. Идеальная форма и универсальный дизайн серии подойдет для любого дома.
Степень защиты - IP44.
📱Телефоны:
(99) 844-00-30 Эргаш
(99) 843-00-30 Сардор
📠факс/офис: (71) 228-02-11
🌐website: www.cncele.uz,
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#songri#songrielectric#songriuzbekistan#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#автоматика#электрика#электрик#электрощит#электротехническаяпродукция#electric#сборкащитов
Серия SEU4 от компании Songri Electric Co., Ltd.
Основание сделано из прочного, огнестойкого поликарбоната, выдерживает температуру до 850° С. Металлическая опора толщиной 1 мм , обладает цинковым покрытием и антикоррозийными свойствами.
Увеличенный серебряный контакт делает продукт более надежным и безопасным.
Поверхность изделия выполнено из долговечного и высококачественного пластика. Идеальная форма и универсальный дизайн серии подойдет для любого дома.
Степень защиты - IP44.
📱Телефоны:
(99) 844-00-30 Эргаш
(99) 843-00-30 Сардор
📠факс/офис: (71) 228-02-11
🌐website: www.cncele.uz,
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
#songri#songrielectric#songriuzbekistan#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#автоматика#электрика#электрик#электрощит#электротехническаяпродукция#electric#сборкащитов
Серия SEU2 от компании Songri Electric Co., Ltd.
Основание сделано из прочного, огнестойкого поликарбоната, выдерживает температуру до 850° С. Металлическая опора толщиной 1 мм , обладает цинковым покрытием и антикоррозийными свойствами.
Увеличенный серебряный контакт делает продукт более надежным и безопасным.
Главной особенностью этой серии является стеклянная рамка высокой прочности, прекрасно впишется в практически любой дизайн, от хай-тека до этники.
📱Телефоны:
(99) 844-00-30 Эргаш
(99) 843-00-30 Сардор
📠факс/офис: (71) 228-02-11
🌐website: www.cncele.uz,
📧e-mail: [email protected]
Instagram —»» https://www.instagram.com/cnc_uzbekistan/
Facebook —»» https://www.facebook.com/electromaxgroup/
Telegram —»» https://t.me/electromaxgroup
YouTube —»» https://www.youtube.com/channel/UCUmHJIxHuQtre1MG6XQ_12w
#songri#songrielectric#songriuzbekistan#cnc#cncelectric#cncuzbekistan#cnctashkent#giant#автоматика#электрика#электрик#электрощит#электротехническаяпродукция#electric#сборкащитов