fix: 允许等待重试任务手动重新执行 (#70)

This commit is contained in:
chengma
2026-08-09 22:47:44 +08:00
parent 5df5398f32
commit a6c573a76a
6 changed files with 151 additions and 12 deletions
+3 -1
View File
@@ -425,13 +425,15 @@ CREATE TABLE app_settings (
| `running` | `cancelled` | 用户停止,且已到安全点、未进入不可逆阶段 | 任务协调器 |
| `result_pending` 结果待提交 | `succeeded` | Admin 返回 `accepted: true` | 结果提交服务 |
| `result_pending` | `manual_review` | 重试次数超上限仍提交不上去 | 结果提交服务 |
| `retry_wait` 重试等待 | `running` | 退避时间到,**本地直接重跑**,新建 `task_runs` 记录(`attempt_no` 加 1) | 任务协调器 |
| `retry_wait` 重试等待 | `running` | 重新启动获取任务,或用户确认“重新执行”;**本地直接重跑**并新建 `task_runs` 记录 | 任务协调器 / 人 |
| `retry_wait` | `failed` | 超过最大重试次数,且从未进入不可逆阶段 | 任务协调器 |
| `retry_wait` | `manual_review` | 超过最大重试次数,但**曾经进入过不可逆阶段** | 任务协调器 |
| `manual_review` / `succeeded` / `failed` / `cancelled` | `claimed` | 用户在 Client 明确确认重新采集;仅限采集任务,且没有未发送 Outbox | 人 |
**注意 `retry_wait` → `running` 是纯本地操作。** 任务已经在本地库里了,重试直接重跑就行,
**不需要再向 Admin 要一次**。没有租约,也就没有"重新获取执行权"这回事。
当前 `retry_wait` 不包含倒计时。自动获取因可恢复采集错误停止后,界面必须显示
“重试已暂停”;用户可以选择任务点击“重新执行”,或重新启动获取任务。
### 7.2 补充规则
+3 -1
View File
@@ -82,10 +82,12 @@
- “刷新”只重新读取本地任务列表,不请求 Admin,也不操作手机。
- “重新执行”位于刷新右侧;没有选中任务时禁用。
- 点击后先校验任务,再显示明确的“重新采集”确认弹窗。弹窗显示任务编号、商品标题,并说明新结果会覆盖 Client 和 Admin 的当前采集数据。
- 只允许重新采集已经结束的采集任务。采购、执行中、结果待提交、等待重试、仍有未发送 Outbox 或自动获取忙碌时必须阻止,并用中文说明原因。
- 允许重新采集已经结束或处于“等待重试”的采集任务。采购、执行中、结果待提交、仍有未发送 Outbox 或自动获取忙碌时必须阻止,并用中文说明原因。
- 确认后只执行选中的稳定任务编号,不领取新任务,不先处理其他任务或 Outbox。
- 重新采集在工作线程运行。执行期间禁用“获取任务”和“重新执行”,完成后刷新列表。
- 每次重新采集创建新的执行记录和幂等键;当前结果更新,旧结果保存在历史执行记录中。
- “等待重试”当前没有倒计时。自动获取因可恢复采集错误停止时,底部状态显示
“重试已暂停”,并提示选择任务点击“重新执行”或重新启动获取任务。
## 5. 任务表格