1.2 KiB
1.2 KiB
转码任务认领与媒资 ID 校验
现场结论
media_asset.id=21确实存在,source_url 对应分集 id=13。- 分集 13 的 video_asset_id=0,旧手动触发只拿媒资,不知道分集绑定, 因而创建了 media_asset_id=21、episode_id=0 的 QUEUED 任务。
- claim 只筛选 episode_id>0,因此该任务永久跳过且没有原因日志。
修复
- POST /admin/media/{id}/transcode 严格只按 media_asset.id 查询; 不再把候选 id 当分集 id 兜底或补登记。
- 媒资存在时按 source_url 反查分集;找到后绑定 drama_id/episode_id。
- 找不到分集时拒绝建任务,避免生成永远无法认领的 episode_id=0 记录。
- claim 增加 media_asset_id/source_url 条件,并记录被跳过任务 id 与原因。
- RUNNING 无更新阈值收敛到 5 分钟,覆盖 worker 重启后的孤儿任务。
- 一次性 patch 将 media_asset_id 不存在且 episode_id=0 的 QUEUED/RUNNING 标记 FAILED。
验证
- 非法 media id 拒绝、未绑定分集拒绝、合法 URL 自动绑定。
- claim 跳过原因、进度更新、僵尸任务恢复。
mvn -pl fruitshorts-module-media,fruitshorts-transcode-worker test。