fix(update): wait for im readiness before verification
这个提交包含在:
父节点
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 \
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户