完全DB版: 移除JSON写入/回退,所有操作直走SQLite
- price_monitor: 完全DB版,不再读写 portfolio.json/watchlist.json - holdings代码从DB读取(SELECT code FROM holdings WHERE is_active=1) - 价格写入DB holdings表 + portfolio_summary + live_prices - 3次重试+指数退避防锁 - server.py: 移除API的JSON回退,DB失败直接返回500 - mofin_db.py: execute_with_retry/commit_with_retry + 15s timeout + busy_timeout - mo_data.py: 已是纯DB模式(无JSON fallback) 这是推进的完全DB化。下一步可删除 data/portfolio.json data/decisions.json data/watchlist.json 等遗留JSON。
This commit is contained in:
+2
-2
@@ -29,9 +29,9 @@ DB_PATH = DATA_DIR / "mofin.db"
|
||||
# ═══════════════════════════════════════════════════════════
|
||||
|
||||
def get_conn() -> sqlite3.Connection:
|
||||
"""获取数据库连接(WAL 模式,外键约束,Row 工厂,30秒超时防并发锁)"""
|
||||
"""获取数据库连接(WAL 模式,外键约束,Row 工厂,30秒超时防并发锁,autocommit模式)"""
|
||||
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
||||
conn = sqlite3.connect(str(DB_PATH), timeout=30)
|
||||
conn = sqlite3.connect(str(DB_PATH), timeout=30, isolation_level=None)
|
||||
conn.row_factory = sqlite3.Row
|
||||
conn.execute("PRAGMA journal_mode=WAL")
|
||||
conn.execute("PRAGMA foreign_keys=ON")
|
||||
|
||||
Reference in New Issue
Block a user