diff --git a/bioflow_service/build.sh b/bioflow_service/build.sh index 85b8fc2..34caea7 100755 --- a/bioflow_service/build.sh +++ b/bioflow_service/build.sh @@ -45,6 +45,10 @@ WHITELIST_PY=( "app/config.py" "app/schemas.py" "app/db.py" + # SSE 流式路由(TL 2026-09-06 补)——与 sdk 侧断流崩溃根治同款教训: + # 客户端中途断开时 Cython 协程取消断言会 abort 整个进程,明文走 CPython 原生协程 + "app/routers/bioflow.py" + "app/routers/biojobs.py" ) _is_whitelisted() { local rel="$1" diff --git a/deploy/bff_restart.sh b/deploy/bff_restart.sh index 62aca1f..3360096 100755 --- a/deploy/bff_restart.sh +++ b/deploy/bff_restart.sh @@ -10,8 +10,14 @@ PYTHON="/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python" BIND="${1:-127.0.0.1}" [[ -x "$PYTHON" ]] || { echo "BFF Python 不可执行: $PYTHON" >&2; exit 1; } -# 杀旧进程([u] 正则技巧防 pkill 自匹配) -pkill -f "[a]pp.main:app" 2>/dev/null +# 杀旧进程:按 8090 端口精确匹配(TL 2026-09-06 修—— +# 旧 pkill 模式 "app.main:app" 会误杀 8098 生信服务,两者同为 uvicorn app.main:app) +if command -v lsof >/dev/null 2>&1; then + OLD_PID="$(lsof -ti tcp:8090 2>/dev/null || true)" + [ -n "$OLD_PID" ] && kill "$OLD_PID" 2>/dev/null || true +else + pkill -f "[a]pp.main:app.*--port 8090" 2>/dev/null || true +fi sleep 2 cd "$SDK_ROOT"