@leya_starlight · Post #269 · 20.04.2025 г., 16:43
你是什么人,便会吸引什么人。每一个人都有一个气场;充满乐观气息安贫乐道的人,好运便会与之相伴;充满悲观思维愤世嫉俗的人,霉运很难不与之相随。所以,一切的发生都是自己内心的映照。你若盛开,蝴蝶自来,你若精彩,天自安排! #Sikandar#PiNetwork#互fo
Hashtags
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
Пребарај: #sikandar
@leya_starlight · Post #269 · 20.04.2025 г., 16:43
你是什么人,便会吸引什么人。每一个人都有一个气场;充满乐观气息安贫乐道的人,好运便会与之相伴;充满悲观思维愤世嫉俗的人,霉运很难不与之相随。所以,一切的发生都是自己内心的映照。你若盛开,蝴蝶自来,你若精彩,天自安排! #Sikandar#PiNetwork#互fo
Hashtags
@leya_starlight · Post #267 · 19.04.2025 г., 17:23
好的经历,珍藏在心中,不好的经历,从中反思,吸取教训。要相信一切的发生都是有它的道理的,人总是在岁月的流转中,越活越清醒,越活越明白。 #PiNetwork#Sikandar#互fo
Hashtags