Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Batareyadan foydalanish tarixi
🔋 Batareyadan foydalanish ma'lumotlarni ko'rish uchun Nirsoft'ning BatteryHistoryView ilovasidan foydalanishingiz mumkin. Yordamchi dastur hisobot davri, quvvat darajasi, zaryadlash soni, to'liq zaryadlangan quvvat, zaryad darajasi va foizi kabi ma'lumotlarni ko'rsatadi.
📥Dasturni yuklab olish uchun:kompyuterbilimlari.uz
🗂Windows noutbuklarda batareyadan foydalanish ma'lumotlarini %windir%\System32\sru jildida saqlaydi.
👉🏼Birinchi raqamli Windows Blog | #batareya / #dastur
💻 Noutbukni tezkor quvvatlash
🔌 Noutbuk akkumulyatori tezroq quvvatlanishi uchun qurilmani har doim ham o‘chirib turish shart emas.
✈️ Shunchaki quvvatlash vaqtida qurilmani vaqtinchalik “Режим полёта”ga o‘tkazib turing.
🔋 Bu qurilmaning tashqi qurilmalar bilan simsiz aloqasini uzib turadi va Wi-Fi, Bluetooth funksiyalari faolsizlantiriladi – batareyaga bo‘lgan yuklama kamayadi.
📱 Ushbu tavsiya smartfon va planshetlaringiz uchun ham o‘rinlidir.
📃O'qishinggiz tavsiya etiladigan qolgan foydali po'stlarimiz:
• Noutbuk akumulyatoridan qanday foydalanish kerak?
• Noutbukni zaryadda ushlab tursa nima bo‘ladi?
👉🏼Birinchi raqamli Windows Blog | #laptop / #batareya
Noutbukni quvvatlantirayotganda ham ishlatsa bo'ladimi?
✅ Ortiqcha so'zlarga o'rin yo'q va javob: Ha
🤔 Nimaga? Chunki hozirgi noutbuklar zamonaviyligini hisobga olsak, ular buni o'zlari hal qila olishadi ya'ni quvvatlantirishni noutbukning o'zi boshqara oladi.
🔌 Albatta bu usulning zarari ham bor bo'lishi mumkin, ammo, zarari bo'lganda ham bu 100 foizdan 5 yoki undan kam foizga to'g'ri kelishi mumkin.
🔋 Xulosa: noutbukingiz holatiga qarab quvvatlantirayotganda ham ishlatish mumkin.
💡 Agar noutbukingizni har doim quvvatlagich bilan ishlatadigan bo'lsangiz, noutbukingizdan batareyani olib qo'yishingiz ham mumkin. Buning uchun kompyuter ustaxonasiga murojaat qiling.
👉🏼Birinchi raqamli Windows Blog | #notebook / #batareya
Noutbukni quvvatlantirayotganda ham ishlatsa bo'ladimi?
✅ Ortiqcha so'zlarga o'rin yo'q va javob: Ha
🤔 Nimaga? Chunki hozirgi noutbuklar zamonaviyligini hisobga olsak, ular buni o'zlari hal qila olishadi ya'ni quvvatlantirishni noutbukning o'zi boshqara oladi.
🔌 Albatta bu usulning zarari ham bor bo'lishi mumkin, ammo, zarari bo'lganda ham bu 100 foizdan 5 yoki undan kam foizga to'g'ri kelishi mumkin.
🔋 Xulosa: noutbukingiz holatiga qarab quvvatlantirayotganda ham ishlatish mumkin.
💡 Agar noutbukingizni har doim quvvatlagich bilan ishlatadigan bo'lsangiz, noutbukingizdan batareyani olib qo'yishingiz ham mumkin. Buning uchun kompyuter ustaxonasiga murojaat qiling.
👉🏼Birinchi raqamli Windows Blog | #notebook / #batareya