fix: 同步scripts/intraday_health_check.py——移除小果残留(与deploy/profile-scripts一致,硬链共享inode)
84d72dfd 只修了 deploy/profile-scripts/ 版本,但 git 里 scripts/ 版本仍是
旧代码(含check_xiaoguo/8645端口/小果Bot/小果信号堆积)。两个文件硬链共享
inode,deploy_guard 检测到 scripts/ 版漂移就 git checkout -- 回滚旧版,
连带覆盖 deploy/profile-scripts/ 版的修复,导致盘中自检持续误报。
同步提交后 deploy_guard 不再回滚。
This commit is contained in:
@@ -65,24 +65,6 @@ def db_today_count(table, date_col):
|
||||
return -1
|
||||
|
||||
|
||||
def check_xiaoguo():
|
||||
"""小果管道:进程/scanner有数据/API可达(降级不报错)"""
|
||||
# 进程 — 不一定有常驻进程(no_agent cron模式)
|
||||
# 数据 — 今日有扫描记录
|
||||
scans_today = db_today_count("xiaoguo_scan_tracker", "last_scanned_at")
|
||||
if scans_today <= 0:
|
||||
# 可能是小果离线了,不报严重,记录即可
|
||||
return
|
||||
# API — 用socket快速检测可达性(3s超时)
|
||||
try:
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
s.settimeout(3)
|
||||
s.connect(("node122", 18003))
|
||||
s.close()
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def check_price_monitor():
|
||||
"""价格监控:检查price_monitor cron最近是否运行 + 数据是否更新
|
||||
|
||||
@@ -152,37 +134,26 @@ def check_price_monitor():
|
||||
def check_bots():
|
||||
zhiwei = subprocess.run(["systemctl", "is-active", "xmpp-zhiwei.service"],
|
||||
capture_output=True, text=True, timeout=5).stdout.strip() == "active"
|
||||
xiaoguo = subprocess.run(["systemctl", "is-active", "xmpp-xiaoguo.service"],
|
||||
capture_output=True, text=True, timeout=5).stdout.strip() == "active"
|
||||
log(zhiwei, "知微XMPP Bot离线")
|
||||
log(xiaoguo, "小果XMPP Bot离线")
|
||||
|
||||
|
||||
def check_gateways():
|
||||
log(check_port(8643), "知微Gateway :8643 未监听")
|
||||
log(check_port(8645), "小果Gateway :8645 未监听")
|
||||
|
||||
|
||||
def check_signal_pipeline():
|
||||
"""信号从xiaoguo_scanner→signal_news→consumer是否通畅"""
|
||||
"""信号处理管道:检查信号积压 + 宏观风险状态"""
|
||||
unproc = 0
|
||||
total_unproc = 0
|
||||
try:
|
||||
conn = get_conn()
|
||||
# xiaoguo 信号堆积(4h以内时效)
|
||||
r = conn.execute("SELECT COUNT(*) FROM signal_news WHERE source LIKE 'xiaoguo%' AND (processed=0 OR processed IS NULL) AND created_at > datetime('now', '-4 hours')").fetchone()
|
||||
# 全量未处理信号
|
||||
r = conn.execute("SELECT COUNT(*) FROM signal_news WHERE (processed=0 OR processed IS NULL)").fetchone()
|
||||
unproc = r[0]
|
||||
# 全量未处理信号(跨来源)
|
||||
r2 = conn.execute("SELECT COUNT(*) FROM signal_news WHERE (processed=0 OR processed IS NULL)").fetchone()
|
||||
total_unproc = r2[0]
|
||||
conn.close()
|
||||
except:
|
||||
pass
|
||||
log(unproc < 30, f"xiaoguo信号堆积: {unproc}条未处理(需<30)")
|
||||
# 其他来源信号积压预警
|
||||
other = total_unproc - unproc
|
||||
if other > 50:
|
||||
log(False, f"其它来源信号积压: {other}条未处理(divergence_watch/trend等无consumer)")
|
||||
if unproc > 50:
|
||||
log(False, f"信号积压: {unproc}条未处理")
|
||||
|
||||
# 宏观风险状态检查
|
||||
try:
|
||||
@@ -248,7 +219,6 @@ def main():
|
||||
|
||||
check_bots()
|
||||
check_gateways()
|
||||
check_xiaoguo()
|
||||
if 9 <= now.hour < 16:
|
||||
# 开盘前10分钟(9:00-9:10)跳过价格新鲜度检查
|
||||
# price_monitor 从 09:00 才开始启动,09:01 检查时数据还未更新(前一天收盘数据)
|
||||
|
||||
Reference in New Issue
Block a user