feat: macro_context/market数据全部DB优先,JSON回退
- 建 macro_context_log 表,macro_context_collector.py 双写 - strategy_lifecycle.py load_macro_context() 优先DB - strategy_tree.py detect_scenario() 优先DB - stale_push_wlin.py load_macro_line() 优先DB - xiaoguo_signal_consumer.py 大盘判断优先DB - stock_profile.py load_macro() 优先DB - system_audit.py 管道审计改查DB market_snapshots - JSON保留作fallback,确保过渡期不中断
This commit is contained in:
+11
-8
@@ -128,16 +128,19 @@ def audit_portfolio(conn):
|
||||
|
||||
# ── 6. 数据管道审计 ──
|
||||
def audit_pipeline():
|
||||
# 检查market.json是否今天更新
|
||||
# 检查DB市场数据是否今天更新
|
||||
try:
|
||||
mkt = json.loads((DATA_DIR / "market.json").read_text())
|
||||
mkt_ts = mkt.get("timestamp", "")
|
||||
if mkt_ts[:10] == datetime.now().strftime("%Y-%m-%d"):
|
||||
log_ok("数据管道", f"市场数据今天更新({mkt_ts})")
|
||||
conn = sqlite3.connect(str(DATA_DIR / "mofin.db"))
|
||||
row = conn.execute(
|
||||
"SELECT created_at FROM market_snapshots ORDER BY created_at DESC LIMIT 1"
|
||||
).fetchone()
|
||||
conn.close()
|
||||
if row and row[0][:10] == datetime.now().strftime("%Y-%m-%d"):
|
||||
log_ok("数据管道", f"市场数据今天更新({row[0]})")
|
||||
else:
|
||||
log_issue("数据管道", "HIGH", f"市场数据未更新, 最后{mkt_ts}")
|
||||
except:
|
||||
log_issue("数据管道", "HIGH", "market.json缺失")
|
||||
log_issue("数据管道", "HIGH", f"市场数据未更新(DB), 最后{row[0] if row else '无数据'}")
|
||||
except Exception as e:
|
||||
log_issue("数据管道", "HIGH", f"DB检查失败: {e}")
|
||||
|
||||
|
||||
# ── 7. 系统服务 ──
|
||||
|
||||
Reference in New Issue
Block a user