Add SSE second-level dashboard stream and 2s client heartbeat.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+1
-1
@@ -5,7 +5,7 @@
|
||||
- 连接本机已登录 MT5,市价开平、ATR 止损止盈、保本、满仓灰显等(由原 `MT5黄金方案/Desktop` 迁入)
|
||||
- **通用包 + 首次激活**:仅第一次填写中控地址与激活码;**不允许离线运行**
|
||||
- **打开复盘**:用已保存的中控地址打开 `/login`
|
||||
- **心跳**:运行中每分钟 ping 中控,网页下载中心显示在线/离线
|
||||
- **心跳**:约每 2 秒 ping 中控,配合总览 SSE 秒级在线状态
|
||||
- **自动上报**:开仓/平仓成功后上报成交与四周期 K 线
|
||||
|
||||
## 本地配置
|
||||
|
||||
@@ -1447,23 +1447,22 @@ class OrderApp(tk.Tk):
|
||||
self._run_async(work)
|
||||
|
||||
def _hub_heartbeat(self) -> None:
|
||||
"""定期 ping 中控,供网页显示在线;断线则提示(不允许离线运行)。"""
|
||||
"""约每 2 秒 ping 中控,供总览秒级在线状态。"""
|
||||
interval_ms = 2000
|
||||
if hub_client is None or not is_activated():
|
||||
self.after(60000, self._hub_heartbeat)
|
||||
self.after(interval_ms, self._hub_heartbeat)
|
||||
return
|
||||
|
||||
def work():
|
||||
ok = False
|
||||
try:
|
||||
ok = bool(hub_client.ping())
|
||||
return bool(hub_client.ping())
|
||||
except Exception:
|
||||
ok = False
|
||||
return ok
|
||||
return False
|
||||
|
||||
def done(ok: bool):
|
||||
if not ok:
|
||||
self.set_status("中控离线:请检查服务器,客户端需保持在线", ok=False)
|
||||
self.after(60000, self._hub_heartbeat)
|
||||
self.after(interval_ms, self._hub_heartbeat)
|
||||
|
||||
def run():
|
||||
ok = work()
|
||||
|
||||
Reference in New Issue
Block a user