@TestFlightX · Post #34764 · 01.12.2024 г., 10:16
#FUS#MARKET#HELPER https://testflight.apple.com/join/YKTYCk8m
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
Пребарај: #helper
@TestFlightX · Post #34764 · 01.12.2024 г., 10:16
#FUS#MARKET#HELPER https://testflight.apple.com/join/YKTYCk8m
@TFGames · Post #1354 · 07.12.2023 г., 00:01
#PIZZA#HELPER#FOR#HSR#GAMES https://testflight.apple.com/join/lHoaVVYQ
@TestFlightX · Post #34765 · 01.12.2024 г., 10:16
#ANIMATH#MATH#SOLVER#HELPER https://testflight.apple.com/join/YbP2zEKr
@TestFlightX · Post #34763 · 01.12.2024 г., 10:16
#MATHOS#AI#MATH#HELPER#TUTOR https://testflight.apple.com/join/Q4ISuSqQ
@botsgram_cu · Post #3209 · 29.11.2020 г., 16:21
@BanWarnBot Qué puede hacer este bot? Este bot realiza un seguimiento de la frecuencia con la que advirtió a alguien y pateará / prohibirá después de un límite establecido. Idioma: Inglés (visto en @BotsGram_cu) #ban, #warn, #group, #track, #kick, #member, #helper
@botsgram_cu · Post #3251 · 06.12.2020 г., 15:14
@DeleteEventsBot Qué puede hacer este bot? Este bot elimina mensajes de eventos (también conocidos como mensajes de acción) en supergrupos. Idioma: Inglés (visto en @BotsGram_cu) #delete, #service, #message, #spam, #helper, #group, #supergroup, #join, #left, #pinned