Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🔤Камқонликни олдини олиш учун қуйидагилар тавсия этилади:
🍲Тўғри овқатланинг - гўшт, жигар, балиқ, яшил барглар, дуккаклилар, ёнғоқлар, цитрус мевалари, қулупнай, малина ва бошқа резаворлар каби темир ва С витамини ўз ичига олган озиқ-овқатларни рационга киритинг.
🏃🏻♀️Соғлом турмуш тарзига риоя қилинг - мунтазам равишда машқ қилинг, етишмовчиликларни текшириб витаминларни қабул қилинг.
🧑🏻🔬Профилактик тиббий кўриклардан ўтиб туринг, шу жумладан қондаги гемоглобин ва темир миқдорини аниқловчи таҳлилларни йилда бир маротаба топшириб туринг.
🚫Спиртли ичимликларни чекланг, улар танадаги темирнинг сўрилишини камайтириши мумкин.
💊Агар керак бўлса, шифокор томонидан белгиланган темир препаратларини қабул қилинг.
Анемия бир неча сабабларга кўра юзага келиши мумкинлигини тушуниш муҳимдир. Жумладан темир, витаминлар этишмаслиги ва баъзи касалликлар. Шунинг учун, агар сизда анемия белгилари мавжуд бўлса, ташхис қўйиш ва даволаш учун шифокорга мурожаат қилишингиз керак.
🩺Doctor Ziyod | #hematology#anemia
❓Нима учун камқонликни аниқлашда фақат гемоглобинга қараш нотўғри?
⠀
🔤Камқонлик - бу қондаги гемоглобинни миқдори пасайиши билан кузатилувчи клиник синдром (белгилар гуруҳи). Кўпинча параллел равишта эритроцитлар сони ҳам камаяди ва кислород ташилиши бузилиб, гипоксия (кислород етишмовчилиги) юзага келади.
⠀
🔤Камқонлик мезонлари:
Гемоглобин эркакларда 130 г/л, аёлларда 120 г/л дан пастроқ бўлиши.
Лекин камқонлик доим фақат темир танқислиги билан боғлиқ бўлмайди. Бошқа тури - бу мегалобласт анемия. Бунда В12 витамини ва фолий кислотаси етишмовчилиги ортидан нуклеин кислоталар (ўша ДНКни ҳосил қиладиган моддалар) яралиши бузилади.
Батафсил қилинган умумий қон таҳлили камқонликни тури ҳақида бирламчи маълумотни беради.
В12 ва фолий кислотаси етишмовчилигида MCV, МСН ва MCHC юқори бўлади. Темир танқис анемияда эса, аксинча паст бўлади.
⠀
В12 дефицит анемияда эозонофиллар, моноцитлар сони пасаяди, лимфоцитлар нисбатан кўпаяди. Беморларни ярмида тромбоцитлар сони ҳам камаяди.
⠀
🔤Темир танқис камқонликни аниқлаш учун топширилади:
- Умумий қон таҳлили
- Ферритин (қонда)
- Қон зардобидаги темир миқдори
• Ферритин танадаги темир заҳираларини акс эттиради. Ферритин паст бўлса, демак темир танқислиги бор. Бунда бошланғич даврда гемоглобин нормада бўлиши мумкин!
⠀
Ферритин 40 нг/мл дан паст бўлиб, гемоглобин нормада бўлса - латент темир етишмовчилиши дейилади.
⠀
Ферритин 40 нг/мл дан паст бўлиб, гемоглобин ҳам паст бўлса - темир танқис анемия дейилади.
⠀
• Зардобдаги темир қонда сузиб юрган темир ва тўқималрдаги заҳиралар миқдорини кўрсатади. Оптимум: 20-25 мкмоль/л.
Таҳлилларда В12 дефицитининг белгилари бўлса, қўшимча шу витаминни аниқлаш учун таҳлил топширилади.
🩺Doctor Ziyod | #hematology#anemia
👀Қонни кўз билан кўриб қуюқ дейиш - катта ҳато!
Баъзида венадан қон ола туриб ҳамширалар "Қониз қуюлиб кетибти" дейишади. Уни устига фақат шу гапга асосланиб одамлар қон суюлтирувчи препаратларни ичиб юришади.
⚡️Бундай ўзбошимчалик жиддий муаммоларга олиб келиши мумкин. Мисол учун, ўткир қон кетиш ҳолатларига.
Қон топширадиган кун эрталаб овқат ейиш мумкин эмаслигини ҳамма билади. Лекин нимагадир одамлар сув ичиш ҳам мумкин эмас деб ўйлашади.
Тунда сув ичмайсиз ва уйғонганизда нисбатан сувсизланган бўласиз. Шу ҳолда лабораторияга борсангиз, қонда суюқлик миқдори нисбатан пасайгани ҳисобига, у қуюқроқ кўринади.
Лекин бу тромб ҳосил бўлиши ва бошқа муаммоларни ҳавфини оширмайди. Шунчаки бу организмдаги табий ўзгаришлар.
☝️Аслида қуюқ қон деб уни ивиш ҳусусияти билан адаштиришади. Ивиш кўрсаткичлари эса фақат ва фақат коагулограмма ва умумий қон таҳлилидаги баъзи кўрсаткичларга қараб аниқланади!
🩺Doctor Ziyod | #hematology#lab