Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🖥Windows 10 da bir nechta ish stollarini qanday yaratish mumkin?
Ikkinchi ish stolini olish uchun Win + Tab tugmalar birikmasini bosing keyin Ish stolini yaratish-ni bosing va tayyor.
Faol ish stollari o'rtasida almashish Win + Ctrl + chap / o'ng strelka klaviatura yorlig'i yordamida amalga oshiriladi.😉
💬Birinchi raqamli windows blog | #windows10
Windows 10 da bir nechta ish stollarini qanday yaratish mumkin?
Ikkinchi ish stolini olish uchun Win + Tab tugmalar birikmasini bosing keyin Ish stolini yaratish-ni bosing va tayyor.
Faol ish stollari o'rtasida almashish Win + Ctrl + chap / o'ng strelka klaviatura yorlig'i yordamida amalga oshiriladi.😉
👉🏼Birinchi raqamli windows blog | #windows10
Windows 10 OT-da siz yarata olmaydigan papkalar
🗂 Ko'pchilik bilsa kerak, Windows operatsion tizimida "CON" nomi bilan papka ochib bo'lmaydi. Windows OT-da nafaqat "CON" balki, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 va LPT9 nomlari bilan ham papka yaratib bo'lmaydi.
ℹ️ Buning sababi shundaki, ushbu papka nomlari muayyan tizim vazifalarida foydalanish uchun saqlangan va agar siz bu nomlar bilan papkalar ochadigan bo'lsangiz, bu tizim chalkashliklariga olib kelishi mumkin.
P.S.: Ayrimlar Bill Gates-ni yoshligida "CON" laqabi chaqirishgani uchun, Windows OT-larda "CON" nomi bilan papka yaratib bo'lmaydi deb o'ylaydi 😂
👉Birinchi raqamli windows blog | #windows10
Windows 10 da bir nechta ish stollarini qanday yaratish mumkin?
Ikkinchi ish stolini olish uchun Win + Tab tugmalar birikmasini bosing keyin Ish stolini yaratish-ni bosing va tayyor.
Faol ish stollari o'rtasida almashish Win + Ctrl + chap / o'ng strelka klaviatura yorlig'i yordamida amalga oshiriladi.😉
@BigMasterUz_bot – universal ustoz!
👉🏼Birinchi raqamli windows blog | #windows10
Windows 10 ni zavod sozlamalariga qaytarish
1. Klaviaturada Win + I kombinatsiyalarini bosing
2.Обновление и безопасность va Восстановление
3.Начать tugmasini bosing
✅ Shundan so'ng fayllarni saqlagan holda kompyuterni zavod sozlamalariga qaytarishinggiz yoki butunlay o'chirib tashlashinggiz mumkin.
P.s:Agar post foydali bo'lsa reaksiya qoldiring.
👉🏼Birinchi raqamli Windows blog | #windows10 / #foydali
Windows 10 ni zavod sozlamalariga qaytarish
1. Klaviaturada Win + I kombinatsiyalarini bosing
2.Обновление и безопасность va Восстановление
3.Начать tugmasini bosing
✅ Shundan so'ng fayllarni saqlagan holda kompyuterni zavod sozlamalariga qaytarishinggiz yoki butunlay o'chirib tashlashinggiz mumkin.
P.s:Agar post foydali bo'lsa reaksiya qoldiring.
👉🏼Birinchi raqamli Windows blog | #windows10 / #foydali
Windows 10 ni zavod sozlamalariga qaytarish
1. Klaviaturada Win + I kombinatsiyalarini bosing
2.Обновление и безопасность va Восстановление
3.Начать tugmasini bosing
✅ Shundan so'ng fayllarni saqlagan holda kompyuterni zavod sozlamalariga qaytarishinggiz yoki butunlay o'chirib tashlashinggiz mumkin.
P.s:Agar post foydali bo'lsa reaksiya qoldiring.
👉🏼Birinchi raqamli Windows blog | #windows10 / #foydali
Ish stoliga Мой компьютер belgisini qanday qo'shish mumkin
1⃣ Ish stolida sichqonchaning o‘ng tugmachasini bosing va Персонализацияni tanlang
2⃣Темы bo'limiga o'ting va o'ng tomonda "Ish stoli belgisi parametrlari" menyusini bosing
3⃣Параметры значков рабочего столаni belgilang va применить tugmasini bosing
💻 Ushbu lifehack faqat Windows 10 foydalanuvchilari uchun.
P.s: Tan oling buni bilmasdinggiz 😁
👉🏼Birinchi raqamli Windows Blog | #foydali / #windows10
Ish stoliga Мой компьютер belgisini qanday qo'shish mumkin
1⃣ Ish stolida sichqonchaning o‘ng tugmachasini bosing va Персонализацияni tanlang
2⃣Темы bo'limiga o'ting va o'ng tomonda "Ish stoli belgisi parametrlari" menyusini bosing
3⃣Параметры значков рабочего столаni belgilang va применить tugmasini bosing
⚠️ Ushbu lifehack faqat Windows 10 foydalanuvchilari uchun.
P.s: Tan oling buni bilmasdinggiz 😁
👉🏼Birinchi raqamli Windows Blog | #foydali / #windows10
Windows 10 ni zavod sozlamalariga qaytarish
1. Klaviaturada Win + I kombinatsiyalarini bosing
2.Обновление и безопасность va Восстановление
3.Начать tugmasini bosing
✅ Shundan so'ng fayllarni saqlagan holda kompyuterni zavod sozlamalariga qaytarishinggiz yoki butunlay o'chirib tashlashinggiz mumkin.
P.s:Agar post foydali bo'lsa reaksiya qoldiring.
👉🏼Birinchi raqamli Windows blog | #windows10 / #foydali
Ish stoliga Мой компьютер belgisini qanday qo'shish mumkin
1⃣ Ish stolida sichqonchaning o‘ng tugmachasini bosing va Персонализацияni tanlang
2⃣Темы bo'limiga o'ting va o'ng tomonda "Ish stoli belgisi parametrlari" menyusini bosing
3⃣Параметры значков рабочего столаni belgilang va применить tugmasini bosing
⚠️ Ushbu lifehack faqat Windows 10 foydalanuvchilari uchun.
P.s: Tan oling buni bilmasdinggiz 😁
👉🏼Birinchi raqamli Windows Blog | #foydali / #windows10