diff --git a/docs/task/165-修复顺运宝采集任务孤儿状态.md b/docs/task/165-修复顺运宝采集任务孤儿状态.md index 35dd59e..29c15ef 100644 --- a/docs/task/165-修复顺运宝采集任务孤儿状态.md +++ b/docs/task/165-修复顺运宝采集任务孤儿状态.md @@ -26,7 +26,8 @@ - `MarkCollecting` 和 `MarkRecollecting` 的原子条件同步支持“无有效任务”恢复,避免页面 提供恢复按钮但服务端仍按更新时间拒绝。 - v12 迁移创建来源表、自检字段/索引/外键及级联规则,并把未删除且没有有效任务的 - 存量孤儿 `collecting` 安全回收到 `pending`。未执行生产迁移或部署。 + 存量孤儿 `collecting` 安全回收到 `pending`。生产数据库在服务器部署前已由另一处 + Admin 连接提前迁移到 v12;本次发布将服务器旧的 v11 二进制切换为兼容 v12 的版本。 ## 改了哪些 @@ -48,7 +49,7 @@ | 删除最后有效采集任务回收状态,有其他任务时不回收 | 通过(自动化用例已编写;真实 MySQL 执行环境未提供) | | 无任务、超时或损坏时间显示明确恢复状态并可重建 | 通过(阶段单测通过;数据库链路用例已编写) | | 正常未超时且有有效任务时禁止重复创建 | 通过(自动化用例已编写;真实 MySQL 执行环境未提供) | -| MySQL v12 首次建库、v11 升级、重放和错误形状拒绝 | 未执行:缺少独立 MySQL 8.4 `_test` 库权限 | +| MySQL v12 首次建库、v11 升级、重放和错误形状拒绝 | 生产 v12 自检与重启通过;独立 `_test` 用例未执行 | | Client 四接口和 Admin 固定 Go 1.23 回归 | 通过;未修改 Client 接口契约 | ## 测试 @@ -56,10 +57,18 @@ - 执行的命令:在 `admin/` 设置 `GOTOOLCHAIN=go1.23.0` 后执行 `go test ./... -count=1`、`go build ./...`、`go vet ./...`,并执行 `git diff --check`。 - 结果:全部通过;未引入新依赖,模板可以正常解析,代码提交为 `9e32898`。 -- **没验证到的部分**:未在真实 MySQL 8.4 `_test` 库执行数据库型测试。已尝试连接 +- 生产部署:构建 Linux amd64 二进制,SHA-256 为 + `078723d246cf578104bfe79dcd2fd43eaee6123f33fe46487b636fbb39f8fd88`;部署前备份为 + `/opt/cmautobuy/backups/autobuy-before-165-20260811T172735.sql.gz`,权限 `600` 且 gzip + 校验通过。服务切换到 `/opt/cmautobuy/releases/9e32898/` 后保持 active/enabled, + 仅监听 `127.0.0.1:18080`;本机根路径返回 303,公网登录页返回 200,近期启动错误为 0。 + 生产 schema 为 v12,`task_syb_sources` 存在,未删除商品中“采集中但无有效任务”的 + 数量为 0。订单 `2608100A0SHGN5` 在部署后收到 Client 采集失败上报,当前为 `failed` + 且无有效任务,可从页面重新创建,不再是孤儿 `collecting`。 +- **没验证到的部分**:未在独立 MySQL 8.4 `_test` 库执行数据库型测试。已尝试连接 `autobuy_test`,但线上 `buy` 按安全规则只拥有生产 `autobuy` 权限;本机监听实例为 - MySQL 5.7,不符合项目要求。没有使用或清理生产 schema。尚未执行生产 v12 迁移、 - 部署和浏览器人工验收。 + MySQL 5.7,不符合项目要求。没有在生产 schema 执行清库型测试;尚未使用生产账号 + 登录浏览器人工核对超时筛选、订单号搜索和重新创建按钮。 ## 相关提交