Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
.
Google's Pixel / GCam is a great, easy to use, feature rich camera app that competes well with the excellent open source Open Camera. GCam brings things like portrait mode, and easy to use slow-motion.
Because of this, there are many developers porting the app to work on as many phones as possible. GCam can increase the performance of your phone's hardware camera, and the ports can also bring the GCam app to DeGoogled phones.
GCam Hub is a website dedicated to tracking all the GCam ports.
Here is the 👉🏻web page listing many Stable GCam Version:
You can work you way through the list until you find one that works on your phone, but then you may try 100 versions and never get one that works.
Keep in mind, these ports will not auto update.
Note: Shamim's SGCAM version 8.5.300 V5 works on Pixel 3a running Lineage.
If you find a version that works on your phone, let everyone know in the comments.
⚡️@LinuxTechIndex
#GCam#camera
#Gcam#App#Official
BSG public version changelog (8.9.097 from 2023/11/11):
▪️Download
▪️Changelog
▪️Config
Follow@xiaomi_12tpro_updates
Join@xiaomi_12tpro_chat
LM.CCD config adapted for OnePlus 13
⬇️ Download Gcam App (pick aweme variant)
What's Working :
Main, Telephoto, Selfie, UW, Night Sight, Portrait, Videography (4k 60fps + Stabilization)
Changelogs :
• Based on LM.CCD_v3_Sabre config by LaoMa
• Upscaling is enabled by default for Selfie Camera
• Removed extra profiles (which i felt useless)
• Miscellaneous small tweaks done by me.
XML (.agc) Save Directory: /Download/AGC 9.2/configs
All credit goes to the original creator of the config.
#gcam#xml#agc
👤 Adapted by: @pulkittg
🔔 Updates: @OnePlus13Series
💬 Discussion: @OnePlus13SeriesChatRoom
Volcarona - AGC Config | Nothing Phone 2 (Pong)
✍️ Details:
- Supports AGC 8.4 & 9.2
- Config can be downloaded from AGC Toolkit or Telegram
⬇️ GCAM: 8.4 | 9.2
⬇️ Toolkit Link for the Config : ToolKit
📮 Original Post: Here
📝 Changelogs:
* Initial Release for pong
⚙️ Installation
8.4
1. Copy the config inside Download/AGC.8.4/configs (create folder if it doesn't exist)
2. Open GCam then swipe down to open the top menu
3. Click on "Load Configs" > select the config > load
9.2
1. Copy the config inside Download/AGC.9.2/configs (create folder if it doesn't exist)
2. Open GCam then click on the profile icon on the app right
3. Click on "Load Configs" > select the config > load
⚠️ Notes
- Use lite configs if the profiles list does not load all the profiles in regular version
👨💻 Adapted by: @Abdulhubbali
🌐 Discussion: @NothingPhone2Photography
🔖 Tags: #agc#gcam#config