1.7 KiB
1.7 KiB
转码分集绑定与运行态修复
已确认现场
admin-api/app-api/worker 均运行旧包;worker 未运行;media_thumbnail 表缺失;
新上传任务 drama_id/episode_id 为 0;旧 worker jar 缺 MediaThumbnail。
代码修复
- 分集保存后按视频 URL 的 objectKey 查找
media_asset。 - media 域新增绑定服务:
- 将 dramaId/episodeId 回填到对应
transcode_task; - QUeued/RUNNING/SUCCESS 任务复用,不重复入队;
- FAILED/CANCELED 或不存在时新建任务;
- 已成功但 episodeId=0 的 rendition 同步回填。
- 将 dramaId/episodeId 回填到对应
claimNext只认领episode_id > 0,零绑定任务保留 QUEUED。- 缩略图登记使用 REQUIRES_NEW 独立事务;生成或登记失败只记 warn/error_msg, 主任务仍 SUCCESS。
- 对 episode_id=0 且源文件不存在的明显测试垃圾标记 CANCELED,不删除。
迁移与运行
- 确认
media_thumbnail不存在后执行幂等 patch。 mvn -DskipTests package全量重建。- 检查三个 jar 分别含:
- admin-api:MediaTranscodeProfile;
- app-api:PlayRespVO.thumbnailsUrl 对应新类;
- worker:MediaThumbnail / MediaThumbnailMapper。
- 重启 8080/8081/worker,日志写
logs/*.log。 - 冒烟 admin 配置、App 详情 thumbnailsUrl、worker 轮询。
- 上传真实视频,创建绑定分集,等待 worker 消费,验证任务、四档 HLS、 media_thumbnail、VTT 与 sprite HTTP 200。
风险
- 旧 QUEUED 中无法绑定且源文件不存在的测试任务将被取消并记录 id。
- 真实视频端到端验证会写入运行数据库和媒资目录。
- 不修改 Web/Flutter,不操作真机。