Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Peugeot заинтересовалась "телевождением". Компания приступает к тестированию технологии германского стартапа Vay, которая позволяет удалённо управлять автомобилем со специально оборудованного рабочего места. Пока речь идёт о сценариях доставки заказов на небольшие расстояния.
#peugeot
https://www.cnbc.com/2024/05/22/peugeot-pilots-vays-remote-driving-tech-to-power-delivery.html
🇷🇺 В Россию вернулся европейский кроссовер Peugeot 2008
📰 Автомобиль стоит дешевле «китайцев» — 2,6 млн рублей. Поставляет новые авто по схеме параллельного импорта мультибрендовый салон из Благовещенска. В рассчитанную цену входят все затраты и таможенные этапы, в том числе пакет документов для дальнейшей постановки автомобиля на учёт.
@avtoNovosti
#Peugeot
Недавно мы восхищались ретрофутуризмом от Mercedes-Benz, а сейчас Peugeot показал свое видение будущего — концепт Peugeot 208 Polygon. Французы говорят, что стиль замешан на LEGO чистоте, простоте и геометрии.
Футуризм снаружи и внутри. Штурвал с управлением по проводам, вся информация только проекция на стекло. Материалы для салона будут делать из старых Peugeot. В серию это пойдет в 2027 и скорее всего в Европе будет популярно.
Это красиво — 👍
Это грустно — 👎
#peugeot
Не так «цікаво» для зрадофілів, як побитий #Prius, але все ж...
На повному ходу охоронці #Венбест на #Renault в‘їхали у новенький #Audi, від чого останній відкинуло у припаркований #Peugeot. Аварія відбулася на перехресті Антоновича і Жилянської. Як і чому - невідомо. Без потерпілих не обійшлося - на місці працювали лікарі швидкої.
Фото: Volobuy
Peugeot и Citroen создали новый бренд электрокаров - Hedmos🚙
Совместное предприятие автоконцернов Dongfeng Peugeot-Citroen (DPC), расположенное в Китае, планирует начать поставки первой модели — кроссовера Hedmos 06 — на китайский рынок уже в мае этого года 🤩
Что нам известно о новом кроссовере? 👇
🔹Габариты составляют 4670×1900×1617 мм, а колесная база — 2775 мм
🔹Двигатель мощностью 218 л.с. разгоняет автомобиль до 100 км/ч за 6,9 секунды
🔹Емкость батареи — 62,3 кВт·ч, а запас хода — 520 км по циклу CLTC
🔹Быстрая зарядка с 30 до 80% за 28 минут
Интерьер электрокара выполнен в минималистичном стиле без лишних “наворотов”. Ожидаемая стартовая цена новинки на китайском рынке составит 120 тысяч юаней (по нынешнему курсу это около 1,5 миллиона рублей) 💰
Как вы считаете, удастся ли Hedmos составить конкуренцию популярным китайским брендам? 🤔
#электромобиль#новыйБренд#Hedmos#Peugeot#Citroen#китай