取餐记录可靠补传第一期实施计划
任务 1:响应语义回归测试
- 增加 JVM 测试配置。
- 覆盖 data 为空但业务码非零的场景。
- 覆盖 code=0/1 删除、其余结果重试的策略。
- 完成红绿测试循环。
任务 2:本地先入库和唯一上传调度
- 数据库插入返回行号。
- 取餐完成后先写本地记录,再调度上传。
- 联网约束、3 分钟线性退避、唯一任务 APPEND,确保运行期间新增记录会串行追加。
- 应用启动和旧闹钟入口统一走调度器。
任务 3:同步串行补传
- 按 pick_id 从旧到新读取。
- Worker 使用同步请求等待结果。
- code=0/1 删除;其他结果保留并重试。
- 移除前台限制、异步回调和补传闹钟自循环。
任务 4:验证与记录
- 运行全部本地单元测试。
- 使用 JDK 8 完成 Java 编译。
- 运行 git diff --check 并检查改动范围。
- 同步 Markdown 与 HTML 变更记录,不自动提交或推送。
验收标准
- 网络请求前已写入 SQLite。
- 后台、重启或网络恢复后仍可继续补传。
- 同一时刻只有一个上传任务。
- Worker 返回前已取得请求结果。
- data 为空不覆盖业务码。
- 非终态失败不删除记录。
已知边界
- 第一期不增加服务端幂等流水号,极端情况下仍可能重复提交。
- 沿用 code=1 为“取餐人不存在并丢弃”的现有规则。
- API 地址切换保护不纳入本期。