From 7efe6704b39a96df68e0534d22d49b4263e1f974 Mon Sep 17 00:00:00 2001 From: I Luk Kim Date: Tue, 14 Apr 2026 12:00:18 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20DB=20=EC=BB=A4=EB=84=A5=EC=85=98=20?= =?UTF-8?q?=ED=92=80=20=EA=B3=A0=EA=B0=88=20=E2=80=94=20pool=5Ftimeout=20?= =?UTF-8?q?=EB=8B=A8=EC=B6=95=20+=20idle=5Fin=5Ftransaction=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=20=EC=A2=85=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 외부 API 호출(yfinance, Alpaca) 중 DB 세션을 유지하는 구조로 인해 idle in transaction 커넥션이 쌓여 풀(50개) 고갈 → 서버 응답 불가. - pool_timeout: 30s → 5s (풀 고갈 시 빠른 실패, 30s 행 방지) - PostgreSQL idle_in_transaction_session_timeout: 90s 설정 (90초 이상 방치된 트랜잭션 자동 종료) Co-Authored-By: Claude Sonnet 4.6 --- app/core/database.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/core/database.py b/app/core/database.py index 863583e..6685186 100644 --- a/app/core/database.py +++ b/app/core/database.py @@ -13,7 +13,7 @@ engine = create_async_engine( future=True, pool_size=settings.DB_POOL_SIZE, max_overflow=settings.DB_MAX_OVERFLOW, - pool_timeout=30, + pool_timeout=5, pool_pre_ping=True, pool_recycle=3600, connect_args={