fix(media): 清理旧 rendition 并确保失败状态落库
This commit is contained in:
1 parent
5d1a157085
commit
91b621fe75
9 files changed
+226
-35
No files matched your search
@@ -0,0 +1,24 @@
|
||||
# 转码 rendition 幂等与失败落库
|
||||
|
||||
## 根因
|
||||
|
||||
- 成功事务只按 media_asset_id 删除旧 rendition。
|
||||
- 同一分集替换视频后 media_asset_id 改变、episode_id 不变,
|
||||
旧行未被删除,触发 uk_rendition(episode_id, quality, format)。
|
||||
- rendition 插入异常后任务未被可靠置为 FAILED。
|
||||
|
||||
## 修复
|
||||
|
||||
1. 成功事务删除条件分组为:
|
||||
`media_asset_id = 本次媒体 OR (episode_id > 0 AND episode_id = 本次分集)`。
|
||||
2. 缩略图登记按 episode_id 删除旧行后重新插入。
|
||||
3. 主流程异常调用 failFinal,直接写 FAILED、错误、finished_at,保留 progress。
|
||||
4. failFinal 自身异常在 worker 中 catch 并打印 ERROR,不静默。
|
||||
5. error 截断同时保留头部与尾部,长度仍 <= 500。
|
||||
|
||||
## 验证
|
||||
|
||||
- 不同 media_asset_id、同 episode_id 的重复转码清理条件。
|
||||
- thumbnail 旧行替换。
|
||||
- 失败落库字段与尾段错误保留。
|
||||
- `mvn -q -DskipTests=false test -pl ... -am`。
|
||||
Reference in new issue
Block a user