Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Уже традиционно провожу свои летние каникулы в Турции в любимом отеле Maxeria Blue Didima❤️🌊
#MaxeriaBlueDidyma#TurkeyVacation#SummerInTurkey#Turkey#Turkey2025#Didim#отдыхвтурции#Турция#Турция2025#отелитурции#отзывоботеле#travelblogger#тревелблогер#ультравсевключено#ultraallinclusive
Почему моим детям так нравится в Maxeria?🤗
🎈Аквапарк со множеством горок и бассейнов
🎈Бесплатный луна-парк
🎈Песочный пляж
🎈Миниклуб и классная детская анимация
🎈Кинотеатр с мультиками под открытым небом
🎈Вкусное мороженое 😜
🎈Ещё и проживание в отеле для двух детей до 12 лет бесплатно👍
Настоящая сказка!🤩🎉
#отдыхсдетьми#kidsholidays#MaxeriaBlueDidyma#TurkeyVacation#SummerInTurkey#Turkey#Turkey2025#Didim#отдыхвтурции#Турция#Турция2025#отелитурции#отзывоботеле#travelblogger#тревелблогер#ультравсевключено#ultraallinclusive
Неделя отдыха в хорошем месте пролетает незаметно!🙃🍹☀️
#отпуск#holidays#MaxeriaBlueDidyma#TurkeyVacation#SummerInTurkey#Turkey#Turkey2025#Didim#отдыхвтурции#Турция#Турция2025#отелитурции#отзывоботеле#travelblogger#тревелблогер#ультравсевключено#ultraallinclusive
Ничего необычного.. просто обычная рабочая пятница, когда твои мысли не о работе, а об отпуске.🏖️
#пятница#friday#MaxeriaBlueDidyma#TurkeyVacation#SummerInTurkey#Turkey#Turkey2025#Didim#отдыхвтурции#Турция#Турция2025#отелитурции#отзывоботеле#travelblogger#тревелблогер#ультравсевключено#ultraallinclusive#отпуск#holidays
Пора освежиться в бассейне🏊♀️🐥🐥🐥
#отпуск#holiday#бассейн#swimmingpool#MaxeriaBlueDidyma#TurkeyVacation#SummerInTurkey#Turkey#Turkey2025#Didim#отдыхвтурции#Турция#Турция2025#отелитурции#отзывоботеле#travelblogger#тревелблогер#ультравсевключено#ultraallinclusive
Говорят, в Турции самые красивые мужчины… Не знаю. Не проверяла! Просто отдыхала..😜🇹🇷
#отпуск#holiday#MaxeriaBlueDidyma#TurkeyVacation#SummerInTurkey#Turkey#Turkey2025#Didim#отдыхвтурции#турецкиемужчины#turkishmen#Турция#Турция2025#отелитурции#отзывоботеле#travelblogger#тревелблогер#ультравсевключено#ultraallinclusive
У каждого напитка своё звучание.. особенно в понедельник!😜
#понедельник#monday#mondaymotivation#MaxeriaBlueDidyma#TurkeyVacation#SummerInTurkey#Turkey#Turkey2025#Didim#отдыхвтурции#Турция#Турция2025#отелитурции#отзывоботеле#travelblogger#тревелблогер#ультравсевключено#ultraallinclusive#отпуск#holiday
Когда муж звонит, а ты с подругой слишком занята… отдыхом 😎🍹💃
#шутка#смешноевидео#funny#отдыхвтурции#Турция#Турция2025#MaxeriaBlueDidyma#TurkeyVacation#SummerInTurkey#Turkey#Turkey2025#Didim#отелитурции#отзывоботеле#подруги#friend#travelblogger#тревелблогер#ультравсевключено#ultraallinclusive
А ‘ППП’ - это Постоянно Путешествовать с Подругой!💃💃✈️🥂
#отпуск#holiday#подруги#besties#girlstrip#friends#MaxeriaBlueDidyma#TurkeyVacation#SummerInTurkey#Turkey#Turkey2025#Didim#отдыхвтурции#Турция#Турция2025#отелитурции#отзывоботеле#travelblogger#тревелблогер#ультравсевключено#ultraallinclusive
Лепестки в воде, солнце на коже, море в сердце. Остановить этот момент — и прожить его ещё раз.💔
#отпуск#holiday#relax#релакс#джакузи#jacuzzi#jacuzziroom#MaxeriaBlueDidyma#TurkeyVacation#SummerInTurkey#Turkey#Turkey2025#Didim#отдыхвтурции#Турция#Турция2025#отелитурции#отзывоботеле#travelblogger#тревелблогер#ультравсевключено#ultraallinclusive
Почему, Вы не на работе?
Я заболела.
Но Вас видели в аэропорту на посадку в Турцию!
Там мой врач..
P.S. Шутка😉
#отпуск#holidays#MaxeriaBlueDidyma#TurkeyVacation#SummerInTurkey#Turkey#romanticholiday#romantic#романтическиевыходные#романтика#номерсбассейном#бассейн#swimmingpool#Turkey2025#Didim#отдыхвтурции#Турция#Турция2025#отелитурции#отзывоботеле#travelblogger#тревелблогер#ультравсевключено#ultraallinclusive