Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🇺🇸Трамп не вдавался в детали мирного плана. В Белом доме не знают, что происходит, — WP со ссылкой на американского чиновника
Президент США не слишком вовлечён в детали.
«Вы ему говорите: „Я постараюсь договориться“. Он отвечает: „Отлично, иди и посмотри, что можно сделать“. Вот такой уровень его погружения в вопрос», — сказал чиновник.
🔹#Трамп#WP#США
📱Спасибо, что следите за новостями вместе с 🤨News!
➡️Поддержать канал Boostами
Washington Post: как остаться наедине со своими мыслями
Думать - это сложно, говорим без всякой иронии. Особенно если речь идет о размышлениях не над какой - то конкретной задачей, но просто в качестве внутренней работы или даже удовольствия ради. Однако, как и любой практике, подобным размышлениям можно научиться, и сегодня мы поговорим о том как это сделать.
«Если мы не единственный вид, то один из немногих видов, у которых есть такие внутренние расширенные линии мыслей, не только о том, что уже произошло или может произойти, но и о том, что никогда не произойдет или могло бы произойти»,
https://theidealist.ru/alonewth/
#WP#человек#мышление#психология
The Washington Post: как правильно держать телефон
«Вы просто неправильно его держите» - сказал однажды Стив Джобс в ответ на обвинения пользователей в том, что его детище плохо ловит сотовую связь. Сегодня врачи повторяют эту ставшей классической реплику, но уже по другому поводу: оказывается, правильно держать смартфон необходимо для того, чтобы минимизировать вред от его использования.
«Идеальный способ держать телефон — не держать его вообще».
https://theidealist.ru/holditright/
#WP#технологии#здоровье#смартфоны
The Washington Post: удивительно простое упражнение, которое поможет снизить кровяное давление
Есть проблемы с давлением? Немного людей возрастом за 30 могут похвастать тем, что у них таких проблем нет. Но не всегда стоит спешить принимать горстями таблетки. По мнению специалистов, регулярное выполнение упражнений вроде приседаний у стены может оказать потрясающий оздоровительный эффект. Заранее предупреждаем: давление - не шутка, и перед внедрение любых нагрузок лучше проконсультироваться с врачом!
«Недавнее исследование, опубликованное в British Journal of Sports Medicine, предполагает, что изометрические упражнения, такие как приседания у стены, могут помочь снизить кровяное давление даже более эффективно, чем другие формы упражнений, включая аэробную активность, силовые тренировки или высокоинтенсивные интервальные тренировки».
https://theidealist.ru/lowerubp/
#WP#наука#здоровье#упражнение
WP: в свои 77 лет она в такой же форме, как 25-летняя. Что ее тело рассказывает нам о старении
Джинни Райс — яркий пример того, что возраст не является пределом для физических возможностей. В свои 77 лет она пробежала Бостонский марафон и побила мировой рекорд в возрастной группе 75–79 лет. Её физиологические показатели, особенно уровень VO₂ max, соответствуют уровню 25-летней женщины. Учёные изучают Райс, чтобы понять, как тренировки и, возможно, гены помогают противостоять старению. Начав бегать в 35 лет для поддержания формы, Райс со временем стала одной из лучших бегуний в своей возрастной категории.
«Никогда не поздно начать заниматься спортом».
https://theidealist.ru/jrice/
#WP#человек#здоровье#спорт#старение