fix(media): 转码错误信息截断并上报进度
This commit is contained in:
1 parent
f9bc6eee6d
commit
660afaf66d
18 files changed
+469
-34
No files matched your search
@@ -0,0 +1,29 @@
|
||||
# 转码错误截断与进度上报
|
||||
|
||||
## 问题
|
||||
|
||||
- ffmpeg 错误输出超过 `error_msg varchar(500)`,失败回写 UPDATE 再次失败,
|
||||
任务停在 RUNNING/0。
|
||||
- worker 未解析 ffmpeg progress,前端只能看到 0。
|
||||
- 缺少 RUNNING 超时收口。
|
||||
|
||||
## 修复
|
||||
|
||||
1. SQL patch 将 transcode_task/media_thumbnail 的 error_msg 改为 TEXT,可重复执行。
|
||||
2. 新增统一错误消息截断,最多保留 500 字符并附总长度;即使补丁尚未执行,
|
||||
也不会超过旧 varchar(500) 限制。
|
||||
3. ffmpeg 使用 `-progress` 临时文件,worker 节流为约 1 秒写 transcode_task.progress。
|
||||
4. rendition 阶段映射 0-90%,封面/缩略图 90-99%,成功后 100。
|
||||
5. 失败保留最后进度;RUNNING 超过 10 分钟无 updated_at 变化标记 FAILED。
|
||||
6. 手动重转复用最新任务,SUCCESS/FAILED/CANCELED 原地重置为 QUEUED、progress=0。
|
||||
7. 成功写 rendition 前替换同媒资旧产物,避免重复重转唯一键冲突。
|
||||
|
||||
## 风险
|
||||
|
||||
- 进度写入只允许 RUNNING 状态,避免覆盖已完成/失败状态。
|
||||
- 历史僵尸任务由 worker 下一轮自动收口,无需手工 SQL。
|
||||
|
||||
## 验证
|
||||
|
||||
- 错误截断、进度更新、僵尸重置、重复触发幂等测试。
|
||||
- `mvn -pl fruitshorts-module-media,fruitshorts-transcode-worker test`。
|
||||
Reference in new issue
Block a user