From 0f684eb043b83097c0178c2a8af816db0091009e Mon Sep 17 00:00:00 2001 From: dekun Date: Fri, 22 May 2026 12:10:36 +0800 Subject: [PATCH] fix(hub): remove trade UI stubs, public ping, multipart dep --- .../scripts/verify_hub_deploy.sh | 47 ++++++++++++++++--- 1 file changed, 41 insertions(+), 6 deletions(-) diff --git a/manual_trading_hub/scripts/verify_hub_deploy.sh b/manual_trading_hub/scripts/verify_hub_deploy.sh index eebafa1..a730446 100644 --- a/manual_trading_hub/scripts/verify_hub_deploy.sh +++ b/manual_trading_hub/scripts/verify_hub_deploy.sh @@ -1,15 +1,23 @@ #!/usr/bin/env bash -# 在服务器上检查中控是否为最新代码(无 api_trade_key、已装 multipart) +# 在服务器上检查中控是否为最新代码(无 api_trade_key、已装 multipart、进程可访问) set -euo pipefail HUB_DIR="$(cd "$(dirname "$0")/.." && pwd)" cd "$HUB_DIR" + +HUB_PORT=5100 +if [[ -f .env ]]; then + p=$(grep -E '^HUB_PORT=' .env 2>/dev/null | tail -1 | cut -d= -f2- | tr -d '\r" ') + [[ -n "${p}" ]] && HUB_PORT="${p}" +fi +PING_URL="http://127.0.0.1:${HUB_PORT}/api/ping" + echo "=== hub.py 检查 ===" if grep -n 'def api_trade_key' hub.py 2>/dev/null; then - echo "FAIL: 仍是旧版 hub.py(含 api_trade_key),请 git pull 或同步最新代码" + echo "FAIL: 仍是旧版 hub.py(含 api_trade_key),请 git pull" exit 1 fi if ! grep -q 'HUB_BUILD' hub.py; then - echo "FAIL: hub.py 缺少 HUB_BUILD 标记,代码过旧" + echo "FAIL: hub.py 缺少 HUB_BUILD 标记" exit 1 fi echo "OK: 无 api_trade_key,含 HUB_BUILD" @@ -19,7 +27,34 @@ echo "=== python-multipart ===" source .venv/bin/activate python -c "import multipart; print('OK:', multipart.__version__)" -echo "=== /api/ping ===" -curl -sf http://127.0.0.1:5100/api/ping | python -m json.tool +echo "=== 端口 ${HUB_PORT} ===" +if command -v ss >/dev/null 2>&1; then + ss -ltn | grep -E ":${HUB_PORT}\\b" || echo "WARN: 未监听 ${HUB_PORT},请 pm2 restart manual-trading-hub" +elif command -v netstat >/dev/null 2>&1; then + netstat -ltn | grep -E ":${HUB_PORT}\\b" || echo "WARN: 未监听 ${HUB_PORT}" +else + echo "(跳过端口检查)" +fi + +echo "=== PM2 manual-trading-hub ===" +if command -v pm2 >/dev/null 2>&1; then + pm2 describe manual-trading-hub 2>/dev/null | grep -E 'status|restarts|uptime|script path' || pm2 list | grep -i hub || true +fi + +echo "=== GET ${PING_URL} ===" +HTTP_CODE=$(curl -sS -o /tmp/hub_ping_body.txt -w "%{http_code}" "${PING_URL}" || echo "000") +echo "HTTP ${HTTP_CODE}" +cat /tmp/hub_ping_body.txt echo "" -echo "若 build 不是 20260521-no-trade-ui,请 pm2 restart manual-trading-hub" +if [[ "${HTTP_CODE}" == "200" ]]; then + python -m json.tool /tmp/hub_ping_body.txt + if grep -q '20260521-no-trade-ui' /tmp/hub_ping_body.txt; then + echo "OK: build 正确" + else + echo "WARN: build 字段不是 20260521-no-trade-ui,请 pm2 restart manual-trading-hub" + fi +else + echo "FAIL: ping 未返回 200。常见原因:进程未启动或崩溃。" + echo " 执行: pm2 restart manual-trading-hub && sleep 2 && bash scripts/verify_hub_deploy.sh" + exit 1 +fi