Files
wecom_it_smart_desk/docs/07-项目管理/任务说明书/任务说明书-78-P0-1-workers改回1.md
Simon facc04aa65 chore: docs 结构整改 + compose 双目录对齐(合并重建提交)
本提交为 .git 对象库损坏后的重建提交,内容等价于原先三个本地提交
(5e2fd4c2 / 57a53c98 / 5d7e1873)的累积结果,未做任何额外改动。

一、docs 结构整改(整改 #14)
根因:重构时新结构为 untracked 文件,执行 git stash(未带 -u)未纳入,
随后 git reset 拉回 HEAD 旧 tracked 树,导致旧树复活、新旧两棵目录
树并存于 docs/,共 791 文件、双分类体系冲突。

修复动作:
- b2 同名异主题文件改名迁移保全 9 个
- C 类 39 个孤立文件按主题正确归类
- A/B1 类 222 个重复文件删除(新结构已有内容副本)
- 9 个旧独有空目录删除
- 270 处内部引用按 verified 映射改写
- 整改记录 #14 登记于 04-运维文档/部署运维

结果:docs 791 → 569 文件,顶层仅规范 8 类 + 治理文件,单树恢复。
残留:约 20 处指向从未存在文件的陈旧死链,归入独立文档卫生任务。

二、compose 双目录对齐(消除踩坑 A)
- docker-compose.yml:nginx 前端挂载全部由根目录 frontend-*/dist
  改为 src/frontend-*/dist(h5 / agent / admin / terminal)
- docker-compose.dev.yml:dev 服务 build context 与卷同步改 src/
- 效果:本地 docker compose up 不再把根目录 stale dist 挂回,
  与线上一致,分叉隐患消除(已 docker compose config 校验通过)

防复发铁律:
- 重构须提交;仓库修复须 git stash -u 或先 commit
- 新结构须 git add 并提交,避免再次 untracked 复活
- H5 改动只动 src/frontend-h5/,禁改根目录遗留 frontend-*/
2026-08-07 22:31:32 +08:00

3.8 KiB
Raw Permalink Blame History

任务说明书 — P0-1 生产 workers=2 改回 1(修复 WS 推送丢 50%)

版本: v1.0 | 日期: 2026-07-17


📋 基本信息

项目 内容
任务名称 P0-1 生产 backend workers=2 改回 1,恢复 WS 单 worker 铁律
任务ID #78
优先级 🔴 P0
类型 部署优化 / Bug修复
状态 待开始
负责人 宋献
创建日期 2026-07-17
计划完成日期 2026-07-18

📥 输入项来源

问题证据

来源 说明
docker-compose.yml 主文件已 --workers 1
docker-compose-override.yml:4 覆盖为 --workers 2 compose 自动合并 override
deploy-server/docker-compose.yml:115 --workers 2
deploy-server/docker-compose-green.yml:46 --workers 2
backend/app/tasks/h5_ai_task.py:10-14 头注释自述:ws_manager 进程内单例,多 worker 时 broadcast 静默丢失约 50%

技术文档

来源文档 相关章节 说明
docs/02-技术文档/重构记录/00-v4.0重构总方案.md §三 批次 1 P0-1 方案出处
docs/02-技术文档/重构记录/01-问题验证清单.md C2 问题证据
docs/04-运维文档/部署运维/DEPLOY-GUIDE.md §4.3 铁律 1 部署铁律

📤 输出成果要求

交付物清单

# 交付物 类型 说明
1 docker-compose-override.yml 配置 删除整个文件(或改 --workers 1),推荐删除
2 deploy-server/docker-compose.yml 配置 L115 --workers 2--workers 1
3 deploy-server/docker-compose-green.yml 配置 L46 --workers 2--workers 1
4 backend/app/main.py 代码 lifespan 启动日志打印醒目提示「WS 推送要求单 worker」+ /health 响应暴露 pid

代码要求

  • 仅配置变更 + main.py 增加 2 行日志,零业务逻辑变更
  • 服务器部署用 v2_ops.py 上传 compose 文件后 docker compose up -d backend

文档要求

  • 更新 docs/02-技术文档/重构记录/README.md §三 状态看板(#78 → 已完成)
  • 填写 docs/02-技术文档/重构记录/02-批次1-P0执行记录.md

🔧 验证方式

功能验证

验证项 验证方法 预期结果
compose 合并后 workers 服务器执行 docker compose -f docker-compose.yml -f docker-compose-override.yml config 2>/dev/null | grep workers(或仅主文件 config 输出 workers: 1--workers 1
容器进程数 docker exec wecom_it_backend ps aux | grep uvicorn 仅 1 个 worker 进程
WS 到达率 H5 + 坐席端各发 10 条消息 AI 回复 100% 到达(20/20
/health 暴露 pid curl https://itsupport.servyou.com.cn/api/health 响应含 pid 字段

完成标准

  • override 文件已删除(或 workers=1),deploy-server 两份已改
  • 服务器 backend 重启,docker compose config 验证 workers=1
  • 双端 20 条消息全部到达
  • 状态看板已更新

📊 工作分解

子任务 预估工时 状态
本地修改 override + deploy-server 两份 compose 15min
上传服务器 + 重启 backend + config 验证 20min
main.py 增加启动提示 + /health pid 15min
双端 20 条消息到达率验证 20min

📞 依赖与阻塞

依赖 说明 状态
独立任务,可最先执行

停机影响backend 重启约 3-5 秒,WS 断连自动重连,无感知。


📈 变更记录

日期 变更内容 变更人
2026-07-17 创建任务 宋献