采集任务遇到可恢复错误后会进入 retry_wait,但当前自动获取随后停止,也没有倒计时调度。任务可以长时间保持“等待重试”,同时“重新执行”入口又拒绝该状态,导致界面给出即将自动重试的印象,却没有直接恢复入口。
retry_wait
next_retry_at
client/src/task_repository.py
client/src/pdd_ui_event.py
attempt_id
failed
manual_review
从 client/ 执行:
client/
C:/Python310/python.exe -m unittest discover -s test -p test_task_repository.py -v C:/Python310/python.exe -m unittest discover -s test -p test_pdd_ui_event.py -v C:/Python310/python.exe -m unittest discover -s test -v C:/Python310/python.exe -m py_compile src/task_repository.py src/pdd_ui_event.py
手动验证:选择一条 retry_wait 且失败事件已提交的采集任务,点击“重新执行”并确认;不得使用采购任务验收。
已完成代码与文档更新,准备提交:
现场只读检查发现,当前两条 retry_wait 任务的 task_failure Outbox 均已被 Admin 永久拒绝,原因是“任务不存在”。因此它们仍会被安全门禁阻止重新采集;即使本地再次采集,Admin 也没有可接收和覆盖的对应任务。应由 Admin 重新创建/派发任务后再执行,不能静默绕过该门禁。
task_failure
验证结果:
python -m unittest discover -s test -q
py_compile
MainWindow
实现与归档已提交:
a6c573a
610e9e3
docs/task/70-等待重试任务手动重新执行.md
验证:Client 全量 187 项测试通过,py_compile 通过,PyQt5 离屏启动 MainWindow 通过。
未验证:尚未用真机创建一条 Admin 仍然存在、Outbox 已发送成功的 retry_wait 任务,并从可见界面完成重新采集。当前数据库中的两条现场任务均被 Admin 以“任务不存在”拒绝,按安全规则不会绕过该状态重新提交。
工单保持开启,等待用户验收。
用户已于 2026-08-11 明确验收通过。
eca9289
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
采集任务遇到可恢复错误后会进入
retry_wait,但当前自动获取随后停止,也没有倒计时调度。任务可以长时间保持“等待重试”,同时“重新执行”入口又拒绝该状态,导致界面给出即将自动重试的印象,却没有直接恢复入口。做什么 / 不做什么
retry_wait采集任务通过“重新执行”立即重采;自动获取因可恢复采集失败停止时,底部状态明确显示“重试已暂停”,提示可选择任务重新执行或重新启动获取任务。next_retry_at、最大重试次数或数据库迁移;不改变 Admin 接口;不允许采购任务重新执行;不放宽忙碌和未发送 Outbox 校验。怎么做
client/src/task_repository.py:把retry_wait加入人工重新采集允许状态,继续事务校验任务类型和未发送 Outbox。client/src/pdd_ui_event.py:收到采集失败结果后读取该任务最终本地状态;若为retry_wait,用稳定状态区和警告信息说明重试已暂停及恢复方法,随后安全停止自动获取。验收标准
retry_wait采集任务在 Outbox 已发送后可以点击“重新执行”。attempt_id和执行记录。retry_wait仍有未发送 Outbox 时继续阻止重新执行,并提示先完成提交。failed、manual_review等状态继续使用原有反馈,不误显示为等待重试。怎么验证
从
client/执行:手动验证:选择一条
retry_wait且失败事件已提交的采集任务,点击“重新执行”并确认;不得使用采购任务验收。风险和回退
实施进度
已完成代码与文档更新,准备提交:
retry_wait采集任务在上次 Outbox 已成功发送后,允许人工“重新执行”;仍保持采购任务、执行中任务和未发送结果不可重跑。现场只读检查发现,当前两条
retry_wait任务的task_failureOutbox 均已被 Admin 永久拒绝,原因是“任务不存在”。因此它们仍会被安全门禁阻止重新采集;即使本地再次采集,Admin 也没有可接收和覆盖的对应任务。应由 Admin 重新创建/派发任务后再执行,不能静默绕过该门禁。验证结果:
python -m unittest discover -s test -q:187 项通过。py_compile:通过。MainWindow:通过。实施完成,待用户验收
实现与归档已提交:
a6c573a(允许等待重试任务手动重新执行)610e9e3docs/task/70-等待重试任务手动重新执行.md验证:Client 全量 187 项测试通过,
py_compile通过,PyQt5 离屏启动MainWindow通过。未验证:尚未用真机创建一条 Admin 仍然存在、Outbox 已发送成功的
retry_wait任务,并从可见界面完成重新采集。当前数据库中的两条现场任务均被 Admin 以“任务不存在”拒绝,按安全规则不会绕过该状态重新提交。工单保持开启,等待用户验收。
用户已于 2026-08-11 明确验收通过。
eca9289