pms-ws 启动横幅与联调面板改读运行参数表, 与运行逻辑同源
pms-ws 的启动横幅原来直接读 settings (.env 层) 的 PMS_QMT_WS_ENABLED 与 PMS_QMT_WS_URL, 而进程实际的启停与端点由运行参数表 pms_runtime_param 决定。 两个源不一致时横幅就说反话: 参数表里通道开着, 横幅却打「未启用 (空转)」, 下一行紧接着就是握手成功、ONLINE、心跳、每 5 分钟拉快照。 改成与 _refresh_params 同一个取值源 (param_store 优先, 读不到退回 .env 初值, 并明说这行是初值)。同批把 ws_smoke.py status 面板的端点显示一并对齐 —— 同一类误导, 排错时最先看的就是它。 只改日志与取值源, 不碰连接、握手与下发逻辑。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
4e8e2e4ac4
commit
e30b333a1c
|
|
@ -976,8 +976,24 @@ def _is_conn_error(e: BaseException) -> bool:
|
||||||
|
|
||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
logger.info("pms-ws 启动 · 协议 V1.0 · 端点 %s · 模式 %s", settings.PMS_QMT_WS_URL,
|
"""启动横幅。取值源必须与 _refresh_params 一致 —— 启停与端点的真值在参数表
|
||||||
"启用" if settings.PMS_QMT_WS_ENABLED else "未启用 (空转)")
|
(pms_runtime_param), .env 里那份只是文件初值。
|
||||||
|
|
||||||
|
2026-09-09: 这里原来直接读 settings, 而参数表里通道是开的, 于是横幅打出「未启用
|
||||||
|
(空转)」, 紧接着就是握手成功、ONLINE、心跳、每 5 分钟拉快照 —— 日志自己打自己的脸。
|
||||||
|
读错源的日志比没有日志更坏: 它会把排错的人往「通道没开」这条死路上带。
|
||||||
|
"""
|
||||||
|
def _banner():
|
||||||
|
return (param_store.get("PMS_QMT_WS_URL", settings.PMS_QMT_WS_URL),
|
||||||
|
param_store.get_bool("PMS_QMT_WS_ENABLED", False))
|
||||||
|
try:
|
||||||
|
url, enabled = await _db(_banner)
|
||||||
|
except Exception as e: # 打一行横幅而已, 读不到参数表绝不能挡住启动
|
||||||
|
url, enabled = settings.PMS_QMT_WS_URL, settings.PMS_QMT_WS_ENABLED
|
||||||
|
logger.warning("横幅取参数表失败, 改按 .env 初值打印 (以运行时参数为准): %s",
|
||||||
|
_brief_err(e))
|
||||||
|
logger.info("pms-ws 启动 · 协议 V1.0 · 端点 %s · 模式 %s", url,
|
||||||
|
"启用" if enabled else "未启用 (空转)")
|
||||||
await WsRunner().run()
|
await WsRunner().run()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ def _fmt_age(dt):
|
||||||
|
|
||||||
def cmd_status(args):
|
def cmd_status(args):
|
||||||
from app.repo import qmt_repo
|
from app.repo import qmt_repo
|
||||||
from app.services import dispatcher
|
from app.services import dispatcher, param_store
|
||||||
from config.settings import settings
|
from config.settings import settings
|
||||||
|
|
||||||
st = qmt_repo.get_state()
|
st = qmt_repo.get_state()
|
||||||
|
|
@ -54,7 +54,9 @@ def cmd_status(args):
|
||||||
print(BAR)
|
print(BAR)
|
||||||
print(f"ws 通道状态 · {datetime.now():%Y-%m-%d %H:%M:%S}")
|
print(f"ws 通道状态 · {datetime.now():%Y-%m-%d %H:%M:%S}")
|
||||||
print(BAR)
|
print(BAR)
|
||||||
print(f" 端点 {settings.PMS_QMT_WS_URL}")
|
# 端点的真值在参数表, .env 那份只是初值 —— 与 pms-ws 实际连接用的取值源保持一致,
|
||||||
|
# 否则这块面板会在两边不一样时显示一个谁也没在用的地址 (2026-09-09 同批修横幅)
|
||||||
|
print(f" 端点 {param_store.get('PMS_QMT_WS_URL', settings.PMS_QMT_WS_URL)}")
|
||||||
print(f" 下发模式 PMS_DISPATCH_MODE = {dispatcher.mode()}"
|
print(f" 下发模式 PMS_DISPATCH_MODE = {dispatcher.mode()}"
|
||||||
f" (联调用本工具, 不必切到 ws)")
|
f" (联调用本工具, 不必切到 ws)")
|
||||||
print(f" pms-ws 进程 {'在线' if ch['process_alive'] else '**不在线**'}"
|
print(f" pms-ws 进程 {'在线' if ch['process_alive'] else '**不在线**'}"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue