docs: 归档任务 #70
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# 70 允许等待重试的采集任务手动重新执行
|
||||
|
||||
- 类型:缺陷
|
||||
- 父级大工单:#1
|
||||
- 所属 MVP / 版本:#2 Client 可运行任务闭环(MVP)
|
||||
- 状态:已完成,待用户验收
|
||||
- 日期:2026-08-09
|
||||
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/70
|
||||
|
||||
## 背景与目标
|
||||
|
||||
采集任务进入“等待重试”后没有倒计时,自动获取流程也已经停止。用户等待十多分钟
|
||||
仍不会看到状态变化,同时“重新执行”又拒绝该状态。本任务允许符合安全条件的
|
||||
等待重试任务人工重新采集,并明确提示任务当前不会自动倒计时。
|
||||
|
||||
## 最终方案
|
||||
|
||||
- 采集任务处于 `retry_wait` 时,可以进入人工重新执行校验。
|
||||
- 上次结果 Outbox 已成功发送后,重新执行会创建新的执行记录;不重新领取任务。
|
||||
- 仍有未发送或永久提交失败的 Outbox 时继续阻止重采,避免本地状态和 Admin 状态分叉。
|
||||
- 永久提交失败时显示 Admin 返回的具体原因,方便判断应先处理什么。
|
||||
- 可恢复采集错误导致自动获取停止时,底部状态和持久警告显示“重试已暂停”,提示
|
||||
用户选择该任务点击“重新执行”,或重新启动获取任务。
|
||||
- 本任务不增加倒计时和 `next_retry_at`,不修改数据库结构或 Admin 接口,也不允许
|
||||
采购任务重新执行。
|
||||
|
||||
现场只读检查发现,当前两条等待重试任务的 `task_failure` Outbox 都被 Admin 以
|
||||
“任务不存在”永久拒绝。这两条任务仍会被安全门禁阻止重采,因为重新采集后的结果
|
||||
也没有 Admin 任务可以接收;应由 Admin 重新创建或派发任务后再执行。
|
||||
|
||||
## 改了哪些文件
|
||||
|
||||
- `client/src/task_repository.py`:允许安全的等待重试采集任务重新执行,并细化 Outbox 错误。
|
||||
- `client/src/pdd_ui_event.py`:增加“重试已暂停”的稳定状态和持久提示。
|
||||
- `client/test/test_task_repository.py`:覆盖等待重试和永久失败 Outbox 的校验。
|
||||
- `client/test/test_pdd_ui_event.py`:覆盖暂停提示及普通失败任务分支。
|
||||
- `docs/client/03-data-model.md`:说明等待重试的人工恢复方式和无倒计时现状。
|
||||
- `docs/client/05-ui-specification.md`:更新重新执行范围和暂停反馈规则。
|
||||
|
||||
## 验收结果
|
||||
|
||||
| 验收标准 | 结果 |
|
||||
|---|---|
|
||||
| 等待重试的采集任务可进入人工重新执行 | 通过 |
|
||||
| 未发送 Outbox 时继续阻止重新执行 | 通过 |
|
||||
| 永久失败 Outbox 显示 Admin 的具体拒绝原因 | 通过 |
|
||||
| 每次重新执行创建新的任务执行记录 | 通过 |
|
||||
| 自动获取停止后明确显示“重试已暂停”和恢复方式 | 通过 |
|
||||
| 普通失败任务不错误显示为等待重试 | 通过 |
|
||||
| 采购任务和执行中的任务仍不可重新执行 | 通过 |
|
||||
|
||||
## 测试
|
||||
|
||||
- 执行的命令:
|
||||
- `C:/Python310/python.exe -m unittest discover -s test -q`
|
||||
- `C:/Python310/python.exe -m py_compile src/task_repository.py src/pdd_ui_event.py`
|
||||
- 设置 `QT_QPA_PLATFORM=offscreen` 后创建并关闭 `MainWindow`
|
||||
- 结果:Client 全量 187 项测试通过;语法检查通过;离屏冒烟输出
|
||||
`MAIN_WINDOW_OK`。
|
||||
- **未验证到的部分**:尚未用真机制造新的等待重试任务,并在可见 Client 界面完成
|
||||
一次人工重新采集;当前现场任务因 Admin 返回“任务不存在”不能用于该验收。
|
||||
|
||||
## 相关提交
|
||||
|
||||
- `a6c573a` 允许等待重试任务手动重新执行
|
||||
Reference in New Issue
Block a user