跳转至

xtquant_manager.health_monitor

HealthMonitor — 后台健康检查线程

三级检查策略(参照 thread_monitor.py 的设计哲学): Level 0 每 check_interval 秒:is_healthy()(内存,无 I/O) → 健康但 ping 过期 → 例行 ping 探测(成功时不记为失败) → 不健康 → Level 1 Level 1:ping()(真实探测,3s 超时) → 失败 → Level 2 Level 2:reconnect()(指数退避,在后台线程中 sleep) → 重连冷却防风暴(默认 60s)

与 thread_monitor.py 的一致性: - 使用 threading.Event.wait() 替代 time.sleep(支持快速 stop()) - 每账号维护独立的重连冷却时间 - 完整的重连历史计数

HealthMonitor

HealthMonitor(manager: XtQuantManager, check_interval: float = 30.0, reconnect_cooldown: float = 60.0)

后台健康检查线程。

Usage

monitor = HealthMonitor(manager, check_interval=30.0) monitor.start()

... 运行中 ...

monitor.stop()

参数:

名称 类型 描述 默认
manager XtQuantManager

XtQuantManager 实例

必需
check_interval float

每次健康检查间隔(秒)

30.0
reconnect_cooldown float

两次重连之间的最小冷却时间(秒)

60.0

start

start() -> None

启动后台守护线程

stop

stop(timeout: float = 5.0) -> None

停止后台线程。 设置 stop_event 后等待线程退出(最多 timeout 秒)。

is_running

is_running() -> bool

返回线程是否在运行

get_status

get_status() -> dict

返回监控器状态快照