Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Подводка для глаз: тогда и сейчас 🎀
Ещё тысячи лет назад в жарком Египте люди начали подчёркивать глаза тёмной линией. Минералы, сажа и масла превращались в кохль — символ защиты, статуса и силы. Глаза обводили и мужчины, и женщины, веря, что взгляд может многое рассказать 👁️✨
С течением времени подводка превратилась в способ выразить красоту. В античности она подчёркивала форму глаз и черты лица, а в XX веке стала настоящей иконой: немое кино, дымчатые тени, выразительные стрелки — одна линия могла полностью менять образ 🎬
В 60-е годы подводка стала смелой и графичной, настоящим заявлением характера 🩶
Сегодня это целый мир возможностей.Подводка остаётся тем инструментом, с которым взгляд становится выразительным — и каждый день можно создавать свой образ!
А вы помните свою первую подводку?
Попробуй подводки ☁️ и будь неповторимой!
Подводка кремовая Miraculous #miraculouseyes
Подводка маркер с кисточкой S-CLASS #overpowered
#sodalovespopculture
🤩Вдохновляемся с Зарой Ларссон! 🤩
🌸Слушаем песни, любуемся макияжами и создаём свои яркие образы! 🫦
Небольшая подборка с косметикой Soda, которая подойдёт идеально🐚
• Подводка маркер с кисточкой S-CLASS #overpowered, 209 system
• Карандаш для глаз World Of Ice #magicalpower. Коллекция Winx, 001 Cool Down
• Палетка теней Magical Dust #magicalpower. Коллекция Winx
• Палетка теней Heart Of Alfea #magicalpower. Коллекция Winx
• Пигмент-подводка для глаз жидкая Princess Of Lynphea #magicalpower. Коллекция Winx, 002 Nature Touch
#sodalovespopculture
#sodainspiration
🔤🔤🔤🔤🔤🔤🔤🔤🔤 с SODA: Смелость. Креатив. Пугающее очарование!
Хеллоуин — лучший повод выйти за рамки и примерить самый запоминающийся образ!
С косметикой SODA ты сможешь воплотить любую идею — от утончённо-жуткой до эффектно-драматичной. Мы собрали подборку ярких образов и подсказали, какие продукты помогут повторить каждый из них.😄
Твои Must-Haves для Хеллоуина от SODA:
• 🕷️ Палетка теней World Is Yours #softdivalution
• 💋Idol Lip Mousse #softhot100, 104 FEARLESS
• 👁Chan Накладные ресницы Hypnotic Look #softdivalution
• 🕸️ Белая подводка S-CLASS #overpowered, 207 reader
#sodainspiration
🎤✨Kpop Demon Hunters, but make it Soda style!
Если бы наши героини выбирали косметику для своих боевых (и сценических 😏) образов, вот что бы оказалось у них в косметичке:
📌Румяна прессованные #rosycheeks, № 103
📌Подводка маркер с кисточкой S-CLASS #overpowered, 201 regressor
📌Жидкие тени для век Solaria #magicalpower. Коллекция Winx, 003 Crown Princess
📌 Chan Палетка теней World Is Yours #softdivalution
Немного фиолетового, капелька блёсток — и ты уже готова спасать мир (или хотя бы танцпол).
Собери свой demon-hunter look ⚡️
#sodainspiration
H2O just add water energyyyyy 🌊✨
включаем ностальгию и ловим вайб русалок вместе с SODA 🐚
солёный воздух, блеск кожи, влажные текстуры — сегодня ты main mermaid
собрали продукты, чтобы повторить тот самый магический glow 👀
1.Жидкие тени для век Domino #magicalpower. Коллекция Winx, 004 Dragon Fury
2.Хайлайтер STELLAR NEBULA #billionstars
3.Сияющее масло для губ #plumpit, № 101 Fergie
4.Подводка маркер с кисточкой S-CLASS #overpowered, 209 system
Делаем макияж, будто ты только что вышла из воды и готова покорять этот мир 🌊💙
в комментариях пиши, какой сериал вернуть в тренды следующим 👇
#sodainspiration
Одержимы вайбом новых ангелов Victoria’s Secret 💗 Эти выходы, сияние, уверенность — просто мурашки! ❤️ Мы собрали продукты SODA, чтобы передать тот самый подиумный блеск: сияющие глаза, глянцевые губы и дерзость в каждом взгляде ❤️
Вот что тебе нужно для angel energy:
🎀 Подводка с кисточкой S-CLASS #overpowered, 209 system
🎀 Жидкие тени Domino #magicalpower, Winx, 004 Dragon Fury
🎀 Карандаш для глаз Zenith #magicalpower, Winx, 006 Techno
🎀Кремовая подводка Miraculous #miraculouseyes, 304
🎀 Бальзам для губ Legendary Lip Balm #sweetkiss, 001
🎀 Масло для губ ROLLIN' LIP OIL #lipbizkit, 001 Strawberry cake
Немного блеска, уверенный взгляд и улыбка — и ты уже на своём подиуме 💋
#sodainspiration