fix: 批量任务明细写完再排队(CREATING 状态)
`create_job` 先把任务行以 QUEUED 入库(引擎立刻可见),再逐条登记明细(扫描 媒体库时 500+ 条要数秒);引擎轮询到的快照可能还没包含剩余明细,收尾时"无未结束 明细"检查也看不到它们,于是把任务误标 COMPLETED,剩余视频永远不再被处理。 - 任务行改以 `CREATING` 入库,明细全部登记完才置 QUEUED(引擎只取 QUEUED, 看不到半成品);登记中途异常置 FAILED 并把异常交给路由层。 - 启动时把上一进程遗留的 CREATING 统一置 FAILED(`fail_creating_batch_jobs`), 避免明细写一半被热重载/强杀后留下看不见的残留任务。 - 回归测试:明细每写一条就问一次引擎队列(写入过程中取不到任务);中途失败记 FAILED;启动清理遗留 CREATING。
This commit is contained in:
@@ -71,6 +71,20 @@
|
||||
并用半透明填充 + 半透明描边降低遮挡感。
|
||||
- **调研全文**:[VR双目字幕景深与遮挡调查报告.md](./VR双目字幕景深与遮挡调查报告.md)。
|
||||
|
||||
## 批量任务先写明细再排队(CREATING 状态)
|
||||
|
||||
- **现象**:新建批量任务后偶发任务被标 COMPLETED、`done=0/N`,剩余视频永远不再
|
||||
被处理(例:`batch_ac585c5458de` 唯一明细还 PENDING 而任务已 COMPLETED)。
|
||||
- **根因**:`create_job` 先把任务行以 QUEUED 入库(此时引擎就看得见),再逐条登记
|
||||
明细(扫描媒体库时 500+ 条要数秒);引擎轮询到的快照可能没包含剩余明细,收尾时
|
||||
“无未结束明细”检查也看不到它们,于是把任务标 COMPLETED。
|
||||
- **结论**:任务行改以 `CREATING` 入库,明细全部登记完才置 QUEUED(引擎只取
|
||||
QUEUED);登记中途异常置 FAILED 并抛给路由;启动时把上一进程遗留的 CREATING
|
||||
统一置 FAILED(`fail_creating_batch_jobs`),避免静默残留。
|
||||
- **旧数据修复**:`scripts/fix_zombie_batch_jobs.py` 仍用于处理历史
|
||||
“COMPLETED 但仍有未结束明细”的脏数据。回归测试见 `test_batch.py` 的
|
||||
`test_job_hidden_from_engine_until_details_written`。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- 当前生效的参数与协议:[node-protocol.md](./node-protocol.md)
|
||||
|
||||
Reference in New Issue
Block a user