Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🟢 Razer o‘zining ilk afsonaviy o‘yin sichqonchasi Boomslang’ni qayta chiqaradi — yangilangan ichki texnologiyalar va cheklangan sonli kolleksion nashrda
📅 2005-yilda taqdim etilgan BoomslangPC-gaming uchun maxsus yaratilgan dunyodagi birinchi sichqoncha bo‘lib, o‘yin periferiyasining butun bir sanoatini boshlab bergan edi. Endi kompaniya uning 20 yilligiga bag‘ishlab Razer Boomslang 20th Anniversary Edition'ni taqdim qildi.
✅ Tashqi ko‘rinishi deyarli o‘sha klassik shaklda qolgan, ammo ichki qismi to‘liq zamonaviylashtirilgan: Focus Pro 45K Gen-2 sensor, Gen-4 optik tugmalar, 45 000 DPI gacha qo‘llab-quvvatlash, HyperSpeed wireless, 8000 Hz polling rate va zaryadlovchi dok-stansiya. Korpus yarim shaffof, 9 zonali RGB yoritishga ega, istalgancha qo‘shiladigan shisha oyoqchalar bilan.
🖱 Vazni va narxi hozircha oshkor qilinmagan. Ma’lum bo‘lgan yagona narsa — Razer atigi 1337 dona chiqaradi va har bir sichqoncha o‘ziga xos raqamga ega bo‘ladi.
➡️#razer | Birinchi IT-Blog
🔥 Geymerlar uchun yangi kreslo chiqadi
ℹ️Trashbox.ru xabariga ko‘ra, Razer kompaniyasi ichki qizdirish va sovutish texnologiyasiga ega bo‘lgan kresloni tayyorlamoqda. Bu texnologiya haroratni foydalanuvchiga mos ravishda nazorat qiladi.
🌡 Qurilma iqlim sharoitiga qarab avtomatik ravishda qizitish yoki sovutish funksiyalarini ishga tushiradi. Bir nechta rejim orqali foydalanuvchi o‘ziga mos haroratni tanlashi mumkin. Smart monitoring texnologiyasi esa atrof-muhit sharoitini tahlil qilib, qulaylikni maksimal darajada saqlab turadi.
💸 Narxi $1500-2000 bo'larmish.
➡️#razer | Birinchi raqamli IT-Blog
Top Tech Announcements from CES 2025
🔍CES 2025 Highlights:
1. Roborock & Dreame: New vacuum robots with robotic arms, lifting items up to 500g.
2. Lenovo: Introduced ThinkBook Plus Gen 6 with expandable OLED display, from 14 to 16.7 inches.
3. Nvidia: Launched RTX 50 series, featuring DLSS 4 for significant performance boosts.
4. SwitchBot: Unveils modular robot K20 Plus Pro, combines various home tasks.
5. Razer: Debuted Project Ava, a real-time gaming assistant chat-bot.
6. Dell: Introduced a 32-inch QD-OLED monitor that adapts sound to user's head position.
7. TCL: Showcases Ai Me, a companion robot with interactive features.
8. Based Hardware: Reveals Omi, a wearable device with a neuro-helper powered by GPT-4.
9. Withings: Presents the Omnia smart mirror, integrating health data from wearables.
10. Halliday: Launches smart glasses with real-time translation capabilities.
#CES2025#TechAnnouncements#Robots#AI#Nvidia#Gaming#Wearables#SmartHome#Lenovo#Roborock#Dreame#Razer#Dell#TCL#SmartGlasses#HealthTech#Innovations#Gadgets#VR#ComputerHardware#VC