Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🇬🇧 С Днем Рождения, Сэр Майкл Кейн! 🎬
Not many people know this, но сегодня мы празднуем день рождения одного из самых культовых британских актеров! Сэру Майклу Кейну, мастеру кокни-акцента, научившему мир говорить с британским акцентом кокни и сделавшему 👓 очки невероятно стильными, сегодня исполняется 92 года.
От скромного начала в Восточном Лондоне до мировой славы, путь Кейна показывает, как талант преодолевает границы. Его характерный голос, акцент и незабываемые роли объединяют 👀 зрителей по всему миру вот уже более 60 лет.
Кейн, при рождении Морис Джозеф Миклвайт, снимался в самых разных 🎞 фильмах: от «Ограбление по-итальянски», «Элфи», «Убрать Картера» и «Ханна и ее сестры» до современных шедевров, таких как трилогия Криса Нолана о Бэтмене.
Все помнят Кейна в амплуа дворецкого Альфреда Пенниуорта — настоящего 🎩 англичанина и воспитателя Брюса Уэйна. Но во всех этих разных ранее упомянутых фильмах очевидно одно — подлинность и обаяние актера.
Какой фильм с Майклом Кейном ваш любимый? Напишите в комментариях❕#MichaelCaine#Cinema#Cockney
— У тебя усталый вид, Альфред. Ты без меня здесь справишься?
— Только скажите мне, как будет по-русски «сама мажься своим лосьоном».
#ВИДЕОТЕКА
#TheDarkKnight
#ТемныйРыцарь
#ChristianBale
#КристианБэйл
#MichaelCaine
#МайклКейн
«Вы посмотрите, доктор, он так счастлив, что даже плачет!»
😅
Если вы вдруг не знаете, что посмотреть вечером с участием сегодняшнего юбиляра, то советую без колебаний включить великую комедию Фрэнка Оза «Отпетые мошенники».
Искромётный, филигранно поставленный и сыгранный фильм, который с годами становится только смешнее. Даже несмотря на то, что это ремейк картины 1964 года «Сказки на ночь» с Марлоном Брандо, Дэвидом Нивеном и Ширли Джонс.
Но здесь именно тот самый случай про исключение из правил. Картина начисто затмила оригинал. Как бы пафосно это ни звучало, но «Отпетые мошенники» — действительно одна из самых смешных комедий, что вы когда-либо видели.
И лучше всего смотреть это кино в блестящем переводе Алексея Михалева. Все эти фразочки и даже интонации навсегда отпечатаются у вас в памяти.
#ВИДЕОТЕКА
#DirtyRottenScoundrels
#ОтпетыеМошенники
#SteveMartin
#СтивМартин
#MichaelCaine
#МайклКейн
#GlennHeadly
#ГленнХедли
#АлексейМихалев
«Считается, что я всегда играю самого себя. Господи боже! Я бы сыграл себя, если бы знал, кто это такой. Сыграл бы с полной выкладкой! Но никогда ведь не знаешь, кто ты на самом деле».
Сэру Майклу Кейну сегодня исполнилось 93 года.
#ВИДЕОТЕКА
#MichaelCaine
#МайклКейн
#TheIpcressFile
#ДосьеИпкресс
#TheItalianJob
#ИтальянскаяРабота
#Sleuth
#Сыщик
#HannahAndHerSisters
#ХаннаИЕеСестры
#DirtyRottenScoundrels
#ОтпетыеМошенники
#OnDeadlyGround
#ВЗонеСмертельнойОпасности
#MissCongeniality
#МиссКонгениальность
#ChildrenOfMen
#ДитяЧеловеческое
#TheDarkKnight
#ТемныйРыцарь
#TheGreatEscaper
#ВеликийБеглец