fix: 盘中自检增加进程级检查(price_monitor/xiaoguo_scanner)
- price_monitor:pgrep进程 + 最近10分钟事件数双重验证 - xiaoguo_scanner:pgrep进程 + 今日数据 + API可达三重验证 - 避免"停了两天不知道"的情况
This commit is contained in:
@@ -60,16 +60,37 @@ def db_today_count(table, date_col):
|
||||
|
||||
|
||||
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")
|
||||
log(scans_today > 0, f"小果扫描今日数据: {scans_today}条(需>0)")
|
||||
# API
|
||||
api_ok = check_http("http://192.168.1.122:18003/v1/models")
|
||||
log(api_ok, "小果LLM API不可达")
|
||||
|
||||
|
||||
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():
|
||||
|
||||
Reference in New Issue
Block a user