Files
cmautobuy/docs/task/287-admin部署ai规格解析66秒等待时间到生产.md
T
2026-08-21 10:40:49 +08:00

69 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 287 Admin:部署 AI 规格解析 66 秒等待时间到生产
- 类型:部署
- 父级大工单:#14
- 所属 MVP / 版本:#199 / Admin AI 规格批量匹配;#253 / 采购运行时 AI 规格纠偏闭环
- 状态:已完成,待用户验收
- 日期:2026-08-21
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/287
## 背景与目标
将 #286 的 Admin 运行时 AI 规格解析等待时间 66 秒发布到生产,并把唯一启用的 AI
服务商现有超时从 30 秒显式调整为 66 秒。发布前生产运行 `1675c8a`。
## 最终方案
- 从固定提交 `e3cd5c7` 构建 Linux amd64 静态二进制;本地、上传和最终稳定链接的
SHA-256 均为 `83dd8694110ad18d80434fa95ed66497f4b71f422763bf1273d7417f4b9b5df2`。
- 切换前确认 schema 为 v29,SYB、目录导入和 AI 匹配活动任务均为 0;使用
`mysqldump --no-defaults --no-tablespaces` 创建逻辑备份并通过 gzip 校验。
- 新二进制先在 `127.0.0.1:18081` 预检,根路径为 303、登录页为 200;正式切换后最多
等待 15 秒,确认登录页已经监听后再执行健康检查。
- 发布到 `/opt/cmautobuy/releases/e3cd5c7/`,复用 release 外的 `config.yaml` 和 `data`
链接,原子切换 `/opt/cmautobuy/cmautobuy-admin`;上一 release `1675c8a` 保留可回退。
- 发布后以精确条件更新 `ai_provider_configs`:先确认只有一个 `enabled=1` 的服务商且
其超时为 30,再仅将该行 `timeout_seconds` 更新为 66。结果为一行变更,其他未启用
服务商的超时字段未变化。
- 没有读取或输出 AI 密钥,也没有发起真实 AI、创建规格映射、采购任务或 Client 任务。
Client 在线更新包未发布:已公开版本为 0.1.5,而 #286 的已提交版本源仍是 0.1.0,
不能覆盖已有发布文件。
## 改了哪些
- `/opt/cmautobuy/releases/e3cd5c7/cmautobuy-admin`:新增并启用生产二进制。
- `/opt/cmautobuy/cmautobuy-admin`:稳定链接从 `1675c8a` 原子切换到 `e3cd5c7`。
- `ai_provider_configs`:唯一启用项的 `timeout_seconds` 从 30 更新为 66。
- `/opt/cmautobuy/backups/autobuy-before-287-20260821T023756Z-notablespaces.sql.gz`:部署前
逻辑备份,86,242,172 字节,SHA-256 为
`875ecca8e338ab7947cce796e781d5b6dd86b412bf8c5585b3ce7b33f53ccab5`,权限 0600。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 发布物来自固定提交,构建、上传和安装 SHA-256 一致 | 通过 |
| 切换前后台作业为空,逻辑备份可通过 gzip 校验 | 通过 |
| 独立端口预检根路径为 303、登录页为 200 | 通过 |
| systemd active/enabled,稳定链接指向新 release | 通过 |
| Nginx、本机和公网 HTTPS 根路径、登录页正常 | 通过 |
| 唯一启用 AI 服务商的超时为 66,其他未启用服务商未变 | 通过 |
| 未读取密钥,未触发真实 AI 或其他业务写入;Client 更新包未覆盖 | 通过 |
| 上一 release `1675c8a` 保留,可切回 | 通过 |
## 测试
- 执行的命令:在 `admin/` 以 Go 1.23.0 执行 `go test ./... -count=1`、`go build ./...`、
`go vet ./...`;以 `GOOS=linux GOARCH=amd64 CGO_ENABLED=0` 构建发布物。服务器执行
SHA-256、`mysqldump --no-defaults --no-tablespaces`、`gzip -t`、独立端口预检、schema 与
活动任务查询、systemd、端口监听和 `nginx -t`;本机执行公网 HTTPS 检查。
- 结果:服务运行 `e3cd5c7`,schema 为 v29,启用服务商超时为 66;本机和公网根路径均为
303、登录页均为 200;启动后没有 fatal、panic 或迁移失败日志。
- **没验证到的部分**:未使用真实 GPT-5.5 发起 66 秒规格解析;未验证 Client 132 秒
请求窗口的端到端行为;没有发布 Client 在线更新包;未实际执行回退或恢复备份。
## 相关提交
- `dc808e2` feat: 调整 AI 规格解析等待时间 (#286)
- `e3cd5c7` docs: 归档任务 #286(本次生产目标代码基线)