You've already forked FrameTour-BE
feat(render): 添加视频渲染作业轮询服务
- 在RenderJobV2Client中新增createFinalizeMP4Task接口用于创建MP4合成任务 - 在RenderJobIntegrationService中实现createFinalizeMP4Task方法 - 创建TaskRenderJobMappingEntity实体类用于跟踪任务与渲染作业关联 - 创建TaskRenderJobMappingMapper接口及对应XML映射文件 - 在TaskTaskServiceImpl中添加mapping表写入逻辑 - 新增RenderJobPollingService定时轮询服务处理渲染状态流转 - 实现从PENDING到PREVIEW_READY再到MP4_COMPOSING最后到COMPLETED的状态转换 - 添加MP4合成任务创建及状态更新功能
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
package com.ycwl.basic.model.task.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* Task与RenderJob关联实体
|
||||
* 用于跟踪task和zt-render-worker服务中渲染作业的关联
|
||||
*/
|
||||
@Data
|
||||
@TableName("task_render_job_mapping")
|
||||
public class TaskRenderJobMappingEntity {
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 任务ID(task表的id)
|
||||
*/
|
||||
private Long taskId;
|
||||
|
||||
/**
|
||||
* 渲染作业ID(zt-render-worker返回的jobId)
|
||||
*/
|
||||
private Long renderJobId;
|
||||
|
||||
/**
|
||||
* 渲染状态
|
||||
* PENDING-等待中, PREVIEW_READY-预览就绪, COMPLETED-已完成, FAILED-失败
|
||||
*/
|
||||
private String renderStatus;
|
||||
|
||||
/**
|
||||
* 已发布片段数
|
||||
*/
|
||||
private Integer publishedCount;
|
||||
|
||||
/**
|
||||
* 总片段数
|
||||
*/
|
||||
private Integer segmentCount;
|
||||
|
||||
/**
|
||||
* 预览播放地址(HLS)
|
||||
*/
|
||||
private String previewUrl;
|
||||
|
||||
/**
|
||||
* 最终MP4地址
|
||||
*/
|
||||
private String mp4Url;
|
||||
|
||||
/**
|
||||
* 错误码
|
||||
*/
|
||||
private String errorCode;
|
||||
|
||||
/**
|
||||
* 错误信息
|
||||
*/
|
||||
private String errorMessage;
|
||||
|
||||
/**
|
||||
* 重试次数
|
||||
*/
|
||||
private Integer retryCount;
|
||||
|
||||
/**
|
||||
* 最后检查时间
|
||||
*/
|
||||
private Date lastCheckTime;
|
||||
|
||||
private Date createTime;
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 渲染状态常量
|
||||
*/
|
||||
public static final String STATUS_PENDING = "PENDING";
|
||||
public static final String STATUS_PREVIEW_READY = "PREVIEW_READY";
|
||||
public static final String STATUS_MP4_COMPOSING = "MP4_COMPOSING";
|
||||
public static final String STATUS_COMPLETED = "COMPLETED";
|
||||
public static final String STATUS_FAILED = "FAILED";
|
||||
|
||||
/**
|
||||
* 预览就绪所需的最小已发布片段数
|
||||
*/
|
||||
public static final int MIN_PUBLISHED_FOR_PREVIEW = 2;
|
||||
|
||||
/**
|
||||
* 最大重试次数
|
||||
*/
|
||||
public static final int MAX_RETRY_COUNT = 10;
|
||||
}
|
||||
Reference in New Issue
Block a user