fix(update): wait for im readiness before verification

这个提交包含在:
徐勤民 2026-07-29 01:39:55 +08:00
父节点 618997c886
当前提交 15df62110f

查看文件

@ -740,6 +740,33 @@ fi
# ---------------------------------------------------------------------------
log "检查 WebSocket 连通性"
# `docker compose up -d` 只表示容器进程已创建,不能证明 Spring 已完成启动。
# IM 首次启动通常晚于 tenant-service;必须先等待 HTTP 路由脱离 502,再做
# WebSocket 与全量业务检查,避免把正常启动窗口误报为部署故障。
if profile_contains "$_ACTIVE_PROFILES" "im"; then
printf ' 等待 im-service 就绪'
_im_ready=0
for i in $(seq 1 40); do
_im_code="$(curl -sk --noproxy '*' -o /dev/null -w '%{http_code}' --max-time 4 \
"http://127.0.0.1:${_NGINX_PORT}/api/im/platform-events/token?appKey=health-probe" \
2>/dev/null || echo 000)"
case "$_im_code" in
200|400|401|403|404)
printf '\n'
ok "im-service 路由已就绪 (HTTP ${_im_code})"
_im_ready=1
break
;;
esac
printf '.'
sleep 3
done
if [ "$_im_ready" -eq 0 ]; then
printf '\n'
warn "im-service 在 120s 内未就绪,请检查: docker compose logs --tail 60 im-service"
fi
fi
# 从服务器本地探测容器 nginx 的 /ws/im 升级握手是否正常
# 正常响应HTTP 101 Switching Protocols;异常400 / 连接拒绝等
_ws_probe="$(curl -sk --noproxy '*' --max-time 5 \