Admin:部署 AI 规格解析 66 秒等待时间到生产 #287

Open
opened 2026-08-21 10:35:38 +08:00 by ila · 1 comment
Owner

基本信息

  • 类型:部署
  • 父级大工单:#14
  • 所属 MVP / 版本:#199 / Admin AI 规格批量匹配;#253 / 采购运行时 AI 规格纠偏闭环
  • 阶段:AI 规格解析等待时间生产发布
  • 依赖:#286

要解决什么

#286 已将 Admin 运行时 AI 规格解析等待时间调整为 66 秒,代码已完成但生产仍运行 1675c8a,且线上启用 AI 服务商配置仍为 30 秒。需要将 Admin 新版本发布到 https://buy.833729.com,并将当前启用服务商的 timeout_seconds 显式更新为 66。

做什么 / 不做什么

  • 做:从固定提交 e3cd5c7 构建 Linux amd64 静态二进制,完成备份、独立端口预检、就绪等待和原子切换。
  • 做:只更新当前启用 AI 服务商的 timeout_seconds 为 66;更新前后只读核对服务商数量、启用项和超时值。
  • 不做:不修改 AI API Key、Base URL、模型、并发、置信度、候选/白名单或采购安全门禁。
  • 不做:不调用真实 AI、不创建规格映射、采购任务或 Client 任务,不触发 SYB、采集、采购、下单或付款。
  • 不做:不发布 Client 在线更新包。本地已发布 Client 为 0.1.5,而 #286 提交中的版本源仍为 0.1.0;要通过在线更新发布 Client,必须先有单独的版本递增工单和已提交版本,不能覆盖已有 0.1.5 文件。

怎么做

  • 用固定 Go 1.23.0 执行 Admin 测试、构建和 vet;以 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 构建。
  • 上传后核对本地、暂存和最终 release 的 SHA-256;release 仅链接既有 config.yaml 和 data。
  • 使用 mysqldump --no-defaults --no-tablespaces 创建权限 0600 的逻辑备份并通过 gzip 校验。
  • 目标二进制先在 127.0.0.1:18081 预检;正式启动后最多等待 15 秒,确认登录页已监听后检查 systemd、Nginx、本机和公网 HTTPS。
  • 在发布后、未触发业务操作的前提下,用事务将 ai_providers 中 enabled=1 的现有 timeout_seconds 从 30 更新为 66;更新前后查询只显示 ID、启用状态和超时,不读取密钥或其他凭据。
  • 启动或健康检查失败时原子切回 1675c8a 并重启。若配置更新失败,保留应用 release 并报告明确失败,不猜测或修改其他 AI 字段。

验收标准

  • 发布物来自固定提交,Go 1.23.0 测试、构建、vet 通过,三处 SHA-256 一致。
  • 切换前 SYB、目录导入和 AI 匹配活动任务均为 0;逻辑备份 gzip 校验通过且权限为 0600。
  • 独立端口预检根路径为 303、登录页为 200;正式启动在就绪等待后完成健康检查。
  • systemd active/enabled,稳定链接指向目标 release,本机和公网根路径/登录页正常。
  • 当前启用 AI 服务商的 timeout_seconds 为 66;非启用服务商和其他 AI 配置字段不变。
  • 没有读取或输出密钥,没有发起真实 AI 或其他业务写入;上一 release 1675c8a 保留可回退。
  • Client 在线更新包没有被误发布或覆盖。

怎么验证

cd D:\chengma\cmautobuy\admin
$env:GOTOOLCHAIN="go1.23.0"
go test ./... -count=1
go build ./...
go vet ./...
$env:GOOS="linux"; $env:GOARCH="amd64"; $env:CGO_ENABLED="0"
go build -trimpath -ldflags="-s -w" -o cmautobuy-admin .

服务器验证 SHA-256、逻辑备份、独立端口预检、schema 与活动任务查询、systemctl、端口监听、nginx -t、本机与公网 HTTPS;配置更新前后只读检查启用项超时。

风险和回退

  • 风险:发布窗口内 Admin 短暂不可用;66 秒请求会占用 AI 并发槽位更久。
  • 回退:应用健康检查失败时切回 1675c8a;本次不含 schema 变化。若需要恢复超时,显式把当前启用项的 timeout_seconds 改回 30,不改动其他字段。
## 基本信息 - 类型:部署 - 父级大工单:#14 - 所属 MVP / 版本:#199 / Admin AI 规格批量匹配;#253 / 采购运行时 AI 规格纠偏闭环 - 阶段:AI 规格解析等待时间生产发布 - 依赖:#286 ## 要解决什么 #286 已将 Admin 运行时 AI 规格解析等待时间调整为 66 秒,代码已完成但生产仍运行 `1675c8a`,且线上启用 AI 服务商配置仍为 30 秒。需要将 Admin 新版本发布到 `https://buy.833729.com`,并将当前启用服务商的 `timeout_seconds` 显式更新为 66。 ## 做什么 / 不做什么 - 做:从固定提交 `e3cd5c7` 构建 Linux amd64 静态二进制,完成备份、独立端口预检、就绪等待和原子切换。 - 做:只更新当前启用 AI 服务商的 `timeout_seconds` 为 66;更新前后只读核对服务商数量、启用项和超时值。 - 不做:不修改 AI API Key、Base URL、模型、并发、置信度、候选/白名单或采购安全门禁。 - 不做:不调用真实 AI、不创建规格映射、采购任务或 Client 任务,不触发 SYB、采集、采购、下单或付款。 - 不做:不发布 Client 在线更新包。本地已发布 Client 为 0.1.5,而 #286 提交中的版本源仍为 0.1.0;要通过在线更新发布 Client,必须先有单独的版本递增工单和已提交版本,不能覆盖已有 0.1.5 文件。 ## 怎么做 - 用固定 Go 1.23.0 执行 Admin 测试、构建和 vet;以 `GOOS=linux GOARCH=amd64 CGO_ENABLED=0` 构建。 - 上传后核对本地、暂存和最终 release 的 SHA-256;release 仅链接既有 `config.yaml` 和 `data`。 - 使用 `mysqldump --no-defaults --no-tablespaces` 创建权限 0600 的逻辑备份并通过 gzip 校验。 - 目标二进制先在 `127.0.0.1:18081` 预检;正式启动后最多等待 15 秒,确认登录页已监听后检查 systemd、Nginx、本机和公网 HTTPS。 - 在发布后、未触发业务操作的前提下,用事务将 `ai_providers` 中 `enabled=1` 的现有 `timeout_seconds` 从 30 更新为 66;更新前后查询只显示 ID、启用状态和超时,不读取密钥或其他凭据。 - 启动或健康检查失败时原子切回 `1675c8a` 并重启。若配置更新失败,保留应用 release 并报告明确失败,不猜测或修改其他 AI 字段。 ## 验收标准 - [ ] 发布物来自固定提交,Go 1.23.0 测试、构建、vet 通过,三处 SHA-256 一致。 - [ ] 切换前 SYB、目录导入和 AI 匹配活动任务均为 0;逻辑备份 gzip 校验通过且权限为 0600。 - [ ] 独立端口预检根路径为 303、登录页为 200;正式启动在就绪等待后完成健康检查。 - [ ] systemd active/enabled,稳定链接指向目标 release,本机和公网根路径/登录页正常。 - [ ] 当前启用 AI 服务商的 `timeout_seconds` 为 66;非启用服务商和其他 AI 配置字段不变。 - [ ] 没有读取或输出密钥,没有发起真实 AI 或其他业务写入;上一 release `1675c8a` 保留可回退。 - [ ] Client 在线更新包没有被误发布或覆盖。 ## 怎么验证 ```powershell cd D:\chengma\cmautobuy\admin $env:GOTOOLCHAIN="go1.23.0" go test ./... -count=1 go build ./... go vet ./... $env:GOOS="linux"; $env:GOARCH="amd64"; $env:CGO_ENABLED="0" go build -trimpath -ldflags="-s -w" -o cmautobuy-admin . ``` 服务器验证 SHA-256、逻辑备份、独立端口预检、schema 与活动任务查询、`systemctl`、端口监听、`nginx -t`、本机与公网 HTTPS;配置更新前后只读检查启用项超时。 ## 风险和回退 - 风险:发布窗口内 Admin 短暂不可用;66 秒请求会占用 AI 并发槽位更久。 - 回退:应用健康检查失败时切回 `1675c8a`;本次不含 schema 变化。若需要恢复超时,显式把当前启用项的 `timeout_seconds` 改回 30,不改动其他字段。
Author
Owner

生产发布完成,待验收

  • 生产目标提交:e3cd5c7;发布归档提交:c7f0ba9。
  • 当前稳定 release:/opt/cmautobuy/releases/e3cd5c7/cmautobuy-admin。
  • 二进制 SHA-256:83dd8694110ad18d80434fa95ed66497f4b71f422763bf1273d7417f4b9b5df2(本地、上传和稳定链接一致)。
  • 发布前后 schema 均为 v29,SYB、目录导入和 AI 匹配活动任务均为 0;逻辑备份已通过 gzip 校验,权限 0600。
  • 当前唯一启用 AI 服务商的超时已从 30 精确更新为 66;未启用服务商及其他 AI 配置字段未修改。
  • 独立端口预检:根路径 303、登录页 200;正式服务 active/enabled,本机和公网根路径 303、登录页 200,Nginx 校验通过。
  • 启动后未发现 fatal、panic 或迁移失败;没有读取密钥,也没有执行真实 AI、映射、采购或其他业务写入。
  • Client 在线更新包没有发布:现有在线版本为 0.1.5,而 #286 的已提交版本源仍为 0.1.0,不能覆盖已有发布文件。上一 release 1675c8a 仍保留,可回退。

本地归档:docs/task/287-admin部署ai规格解析66秒等待时间到生产.md。

## 生产发布完成,待验收 - 生产目标提交:`e3cd5c7`;发布归档提交:`c7f0ba9`。 - 当前稳定 release:`/opt/cmautobuy/releases/e3cd5c7/cmautobuy-admin`。 - 二进制 SHA-256:`83dd8694110ad18d80434fa95ed66497f4b71f422763bf1273d7417f4b9b5df2`(本地、上传和稳定链接一致)。 - 发布前后 schema 均为 v29,SYB、目录导入和 AI 匹配活动任务均为 0;逻辑备份已通过 gzip 校验,权限 0600。 - 当前唯一启用 AI 服务商的超时已从 30 精确更新为 66;未启用服务商及其他 AI 配置字段未修改。 - 独立端口预检:根路径 303、登录页 200;正式服务 active/enabled,本机和公网根路径 303、登录页 200,Nginx 校验通过。 - 启动后未发现 fatal、panic 或迁移失败;没有读取密钥,也没有执行真实 AI、映射、采购或其他业务写入。 - Client 在线更新包没有发布:现有在线版本为 0.1.5,而 #286 的已提交版本源仍为 0.1.0,不能覆盖已有发布文件。上一 release `1675c8a` 仍保留,可回退。 本地归档:`docs/task/287-admin部署ai规格解析66秒等待时间到生产.md`。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#287