Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Illegal migration threatens Jewish communities and boosts antisemitism in Western Europe while Brussels ignores safety for a globalist agenda, Hungarian PM Viktor Orban argues during Israeli counterpart’s visit to Budapest
#Hungary
🏰🇭🇺Budapest
No building in Budapest rises above 96 meters. This balance between historic architecture and modern structures gives the city its distinctive and harmonious charm. ✨
#Hungary | @voyage
Hungary, evening Budapest 🇭🇺
A walk through evening Budapest will leave no one indifferent; the magic of Budapest at night is like a fairy tale come to life. ✨
From the majestic building of the Parliament to the strict lines of the Fisherman's Bastion and picturesque bridges, Budapest is beautiful in the evening, surpassing many European capitals. 🌆
#Hungary
@voyage
🇭🇺#HungaryТысячи людей вышли на демонстрации и заблокировали несколько основных дорог в Будапеште⚠️☝️
💬 Народ выступает против налоговой реформы, направленной на повышение налоговой ставки для сотен тысяч малых предприятий.
‘Best grave’ championship
#video#Hungary
Ever considered grave-digging as a fun, competitive pastime? At least that’s how the Hungarian Gravediggers’ Association sees it.
Teams race to dig a perfect grave. It has to be exactly 1.6 m deep, 2 m long and 80 cm wide. Surprisingly, competitive grave-digging is quite a sight. Otherwise how would you explain people coming to watch and cheer?
Follow: https://t.me/rtdocumentary
#Budapest#Hungary
Matias favvorasi (Mátyás kútja)
Bu favvora ko'pincha Vengriyaning "Trevi favvorasi" deb ham ataladi. Unda Vengriyaning eng mashhur qirollaridan biri Matias Korvin (Matthias Corvinus) ov paytida tasvirlangan. Markazdagi haykal qirolning o'zi, uning atrofida esa ov itlari va o'lja (kiyik) tasvirlari bor.
Favvora 1904-yilda haykaltarosh Alayos Shtrobl (Alajos Stróbl) tomonidan yaratilgan.
Haykallar orasida bir qizning (Go'zal Ilonka) haykali ham bor. Afsonaga ko'ra, u o'rmonda ov qilib yurgan yigitning qirol ekanini bilmay, uni sevib qoladi. Keyinchalik uning haqiqiy kimligini bilib, ayriliq g'amidan vafot etadi.
Favvora neobarokko uslubida ishlangan bo'lib, saroyning g'arbiy devoriga juda mohirlik bilan uyg'unlashtirilgan.
@bagajsiz
#Budapest#Hungary
Buda qal'asi (vengr. Budavári Palota) tasvirlangan. Bu bino Vengriya qirollarining tarixiy qarorgohi va saroy majmuasi
Tarixi: Qal'a birinchi marta 13-asrda mo'g'ullar bosqinidan keyin mudofaa maqsadida qurilgan. Asrlar davomida u ko'p marta vayron qilingan va qayta tiklangan. Hozirgi barokko uslubidagi ko'rinishi asosan 18-19-asrlarga tegishli.
Joylashuvi: U Dunay daryosining g'arbiy sohilidagi Qal'a tepaligida (Várhegy) joylashgan bo'lib, u yerdan shaharning (Pest qismining) go'zal panoramasi ko'rinadi.
Hozirgi holati: Bugungi kunda saroy binosida Vengriya Milliy galereyasi va Budapesht tarixi muzeyi joylashgan.
YUNESKO: Buda qal'asi butun Qal'a okrugi bilan birgalikda 1987-yilda YUNESKOning Butunjahon merosi ro'yxatiga kiritilgan.
@bagajsiz
#Budapest#Hungary
Shandor saroyi (Sándor-palota)
2003-yildan buyon bu bino Vengriya Prezidentining rasmiy ish joyi va qarorgohi hisoblanadi. Saroy 1803–1806-yillarda graf Vinsent Shandor buyurtmasiga binoan klassitsizm uslubida bunyod etilgan
📍Joylashuvi
Bino Budapeshtning tarixiy qismi boʻlgan Buda qalʼasi (Budavári Palota) majmuasida, "Funicular" (tepaga chiquvchi poyezd) bekati roʻparasida joylashgan. Uning yonida mashhur Matyash cherkovi va Baliqchilar bastioni mavjud.
@bagajsiz
#Budapest#Hungary
Muhtasham obidalardan biri — Avliyo Ishtvan bazilikasi (Szent István-bazilika)
Vengriya ramzi: Bu cherkov Vengriyaning birinchi qiroli Avliyo Ishtvan sharafiga nomlangan. Binoning balandligi 96 metr bo'lib, u Vengriya parlamenti binosi bilan bir xil balandlikda — bu mamlakatda dunyoviy va diniy hokimiyat tengligini anglatadi.
Bazilikani qurish juda uzoq — 54 yil davom etgan (1851-1905). Qurilish davomida hatto uning gumbazi bir marta qulab ham tushgan.
Cherkov ichida qirol Ishtvanning saqlanib qolgan o'ng qo'li mumiya holatida maxsus qutida saqlanadi. Bu vengerlar uchun eng muhim diniy yodgorlik hisoblanadi.
Bazilikaning tepasiga (gumbaz qismiga) liftda yoki zinalar orqali chiqish mumkin. U yerdan butun Budapesht shahri kaftdek ko'rinib turadi.
Rasmda ko'rinib turgan geometrik naqshli maydon — Avliyo Ishtvan maydoni bo'lib, u yerda qish oylarida Yevropaning eng chiroyli Rojdestvo bozorlaridan biri tashkil etiladi.
@bagajsiz