diff --git a/stock-lab/app/screener/router.py b/stock-lab/app/screener/router.py index aadd10f..bbf6905 100644 --- a/stock-lab/app/screener/router.py +++ b/stock-lab/app/screener/router.py @@ -45,7 +45,12 @@ def _db_path() -> str: def _conn() -> sqlite3.Connection: - return sqlite3.connect(_db_path()) + # WAL 모드 + busy_timeout으로 동시 read/write lock 회피 + # (snapshot/refresh 직후 /run이 SELECT 시 OperationalError 'database is locked' 방지) + conn = sqlite3.connect(_db_path(), timeout=30.0) + conn.execute("PRAGMA journal_mode=WAL") + conn.execute("PRAGMA busy_timeout=30000") + return conn # ---------- /nodes ----------