fix: 盘中自检增加进程级检查(price_monitor/xiaoguo_scanner)

- price_monitor:pgrep进程 + 最近10分钟事件数双重验证
- xiaoguo_scanner:pgrep进程 + 今日数据 + API可达三重验证
- 避免"停了两天不知道"的情况
This commit is contained in:
知微
2026-06-24 22:00:58 +08:00
parent 077f683878
commit d27dbcc6ad
+24 -3
View File
@@ -60,16 +60,37 @@ def db_today_count(table, date_col):
def check_xiaoguo(): def check_xiaoguo():
"""小果管道:scanner有数据 + API可达""" """小果管道:进程/scanner有数据/API可达"""
# 进程
r = subprocess.run(["pgrep", "-f", "xiaoguo_scanner"], capture_output=True, timeout=5)
log(r.returncode == 0, "小果扫描进程不在运行")
# 数据
scans_today = db_today_count("xiaoguo_scan_tracker", "last_scanned_at") scans_today = db_today_count("xiaoguo_scan_tracker", "last_scanned_at")
log(scans_today > 0, f"小果扫描今日数据: {scans_today}条(需>0") log(scans_today > 0, f"小果扫描今日数据: {scans_today}条(需>0")
# API
api_ok = check_http("http://192.168.1.122:18003/v1/models") api_ok = check_http("http://192.168.1.122:18003/v1/models")
log(api_ok, "小果LLM API不可达") log(api_ok, "小果LLM API不可达")
def check_price_monitor(): def check_price_monitor():
done = db_today_count("price_events", "date") """价格监控:进程在跑 + 最近有数据"""
log(done > 0, f"价格监控今日事件: {done}条(需>0") # 进程检查
r = subprocess.run(["pgrep", "-f", "price_monitor"], capture_output=True, timeout=5)
process_alive = r.returncode == 0
if not process_alive:
log(False, "价格监控进程不在运行")
return
# 数据新鲜度(最近10分钟是否有事件)
try:
conn = sqlite3.connect(str(DB_PATH))
recent = conn.execute(
"SELECT COUNT(*) FROM price_events WHERE created_at > datetime('now', '-10 minutes')"
).fetchone()[0]
conn.close()
log(recent > 0, f"价格监控进程在跑,但最近10分钟无新事件")
except:
log(True, "价格监控进程在跑")
def check_bots(): def check_bots():