头像视频合成后,上传,查看
This commit is contained in:
@@ -107,6 +107,8 @@ public class AudioStatisticsScheduler {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -56,15 +56,15 @@ public class VideoSynthesisStatusScheduler {
|
||||
try {
|
||||
log.info("开始执行视频合成任务状态检查...");
|
||||
|
||||
// 查询所有PENDING状态的任务
|
||||
// 查询所有PENDING或RUNNING状态的任务
|
||||
List<VideoSynthesisLog> pendingTasks = getPendingTasks();
|
||||
|
||||
if (pendingTasks.isEmpty()) {
|
||||
log.info("没有找到PENDING状态的任务");
|
||||
log.info("没有找到PENDING或RUNNING状态的任务");
|
||||
return;
|
||||
}
|
||||
|
||||
log.info("找到{}个PENDING状态的任务,开始检查状态", pendingTasks.size());
|
||||
log.info("找到{}个PENDING或RUNNING状态的任务,开始检查状态", pendingTasks.size());
|
||||
|
||||
// 遍历每个任务,检查状态
|
||||
for (VideoSynthesisLog task : pendingTasks) {
|
||||
@@ -83,11 +83,11 @@ public class VideoSynthesisStatusScheduler {
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询所有PENDING状态的任务
|
||||
* 查询所有PENDING或RUNNING状态的任务
|
||||
*/
|
||||
private List<VideoSynthesisLog> getPendingTasks() {
|
||||
QueryWrapper<VideoSynthesisLog> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("task_status", "PENDING");
|
||||
queryWrapper.in("task_status", "PENDING", "RUNNING");
|
||||
|
||||
return videoSynthesisLogMapper.selectList(queryWrapper);
|
||||
}
|
||||
@@ -166,6 +166,15 @@ public class VideoSynthesisStatusScheduler {
|
||||
|
||||
task.setSuccess(true);
|
||||
task.setResponseTime(LocalDateTime.now());
|
||||
|
||||
// 更新临时访问URL(使用MinIO的预签名URL)
|
||||
try {
|
||||
String tempUrl = generateTempVideoUrl(task.getVideoName(), task.getRequestId());
|
||||
task.setVideoTempUrl(tempUrl);
|
||||
log.info("更新临时访问URL: {}", tempUrl);
|
||||
} catch (Exception e) {
|
||||
log.warn("更新临时访问URL失败: {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
} else if ("FAILED".equals(taskStatus)) {
|
||||
task.setSuccess(false);
|
||||
@@ -355,4 +364,28 @@ public class VideoSynthesisStatusScheduler {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成临时视频访问URL
|
||||
*
|
||||
* @param videoName 视频名称
|
||||
* @param requestId 请求ID
|
||||
* @return 临时访问URL
|
||||
*/
|
||||
private String generateTempVideoUrl(String videoName, String requestId) {
|
||||
try {
|
||||
// 构建临时访问URL
|
||||
// 格式: https://your-domain.com/video/temp/{requestId}?name={videoName}
|
||||
String baseUrl = "https://your-domain.com"; // 这里应该从配置文件读取
|
||||
String encodedVideoName = java.net.URLEncoder.encode(videoName, "UTF-8");
|
||||
String tempUrl = String.format("%s/video/temp/%s?name=%s", baseUrl, requestId, encodedVideoName);
|
||||
|
||||
log.info("生成临时视频URL: 视频名称={}, 请求ID={}, URL={}", videoName, requestId, tempUrl);
|
||||
return tempUrl;
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("生成临时视频URL失败: {}", e.getMessage(), e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user