@airportroster · Post #629 · 11.03.2022 г., 15:03
#编号513 #EEVPN 收录时间: 2022.03.11 官网: https://cmlink.v2fly.co/ 群组: t.me/+aZA2KexoRj5kZmYx 频道: 商店截图 10元年付每月15G轻量包, #BGP 优化线路。最近新开的
TGINSIGHT SIMILAR POSTS
Изворен канал @pythonotes · Post #425 · 20 апр.
Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках. Выглядело это примерно так: 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
Hashtags
Пребарај: #eevpn
@airportroster · Post #629 · 11.03.2022 г., 15:03
#编号513 #EEVPN 收录时间: 2022.03.11 官网: https://cmlink.v2fly.co/ 群组: t.me/+aZA2KexoRj5kZmYx 频道: 商店截图 10元年付每月15G轻量包, #BGP 优化线路。最近新开的
@surfboardnews · Post #155 · 13.04.2022 г., 02:10
EEVPN ※海外运营 数据安全※ - 电报群组:点我加入 - 维护频道:@eevpn_noc - 年付低至 ¥9.99 元 - 中国大陆 BGP 网络接入 - IEPL中继网络 - 最高 2000Mbps 速率可用 - 不限制在线客户端 - 解锁各大流媒体 - 官网:https://www.eevpn.cc #EEVPN#V2Ray#Shadowsocks
Hashtags