From f2ba5ed65b138d94d0a9f2a98131824d1ba5a917 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 19 Dec 2025 17:21:41 +0800 Subject: [PATCH] =?UTF-8?q?refactor(task):=20=E7=A7=BB=E9=99=A4=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E9=87=8D=E6=96=B0=E4=B8=8A=E4=BC=A0=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=8F=8A=E7=9B=B8=E5=85=B3=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 VideoReUploader 类及其相关注入依赖 - 移除 VideoReUploader 的调用逻辑 - 清理无用的导入语句及测试类文件 - 简化视频处理流程,去除冗余操作步骤 --- .../task/impl/TaskTaskServiceImpl.java | 3 - .../com/ycwl/basic/task/VideoPieceGetter.java | 7 +- .../com/ycwl/basic/utils/VideoReUploader.java | 94 ------------------- .../ycwl/basic/utils/VideoReUploaderTest.java | 22 ----- 4 files changed, 1 insertion(+), 125 deletions(-) delete mode 100644 src/main/java/com/ycwl/basic/utils/VideoReUploader.java delete mode 100644 src/test/java/com/ycwl/basic/utils/VideoReUploaderTest.java diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java index 9acd70fe..96c29356 100644 --- a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java @@ -57,7 +57,6 @@ import com.ycwl.basic.storage.utils.StorageUtil; import com.ycwl.basic.task.VideoPieceGetter; import com.ycwl.basic.repository.TemplateRepository; import com.ycwl.basic.utils.SnowFlakeUtil; -import com.ycwl.basic.utils.VideoReUploader; import com.ycwl.basic.utils.NotificationAuthUtils; import lombok.NonNull; import lombok.extern.slf4j.Slf4j; @@ -120,8 +119,6 @@ public class TaskTaskServiceImpl implements TaskService { @Autowired private DeviceRepository deviceRepository; @Autowired - private VideoReUploader videoReUploader; - @Autowired private RedisTemplate redisTemplate; @Autowired private SourceRepository sourceRepository; diff --git a/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java b/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java index b7b9d3ee..88e355ab 100644 --- a/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java +++ b/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java @@ -28,7 +28,6 @@ import com.ycwl.basic.repository.TemplateRepository; import com.ycwl.basic.storage.StorageFactory; import com.ycwl.basic.storage.adapters.IStorageAdapter; import com.ycwl.basic.utils.SnowFlakeUtil; -import com.ycwl.basic.utils.VideoReUploader; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -75,8 +74,6 @@ public class VideoPieceGetter { @Autowired private TemplateRepository templateRepository; @Autowired - private VideoReUploader videoReUploader; - @Autowired private ScenicRepository scenicRepository; @Autowired private DeviceIntegrationService deviceIntegrationService; @@ -398,8 +395,7 @@ public class VideoPieceGetter { // 先插入source记录 sourceMapper.add(sourceEntity); - videoReUploader.addTask(sourceEntity.getId()); - + // 然后处理关联关系 if (task.memberId != null && task.faceId != null) { List memberSourceEntities = memberRelationRepository.listSourceByFaceRelation(task.faceId, 1); @@ -434,7 +430,6 @@ public class VideoPieceGetter { source.setPosJson(config.getString("video_crop")); } sourceMapper.update(source); - videoReUploader.addTask(source.getId()); } } else { // 有原视频,source已存在,可以直接添加关联关系 diff --git a/src/main/java/com/ycwl/basic/utils/VideoReUploader.java b/src/main/java/com/ycwl/basic/utils/VideoReUploader.java deleted file mode 100644 index 91690749..00000000 --- a/src/main/java/com/ycwl/basic/utils/VideoReUploader.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.ycwl.basic.utils; - -import cn.hutool.core.thread.ThreadFactoryBuilder; -import cn.hutool.http.HttpUtil; -import com.ycwl.basic.constant.StorageConstant; -import com.ycwl.basic.mapper.SourceMapper; -import com.ycwl.basic.mapper.VideoMapper; -import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; -import com.ycwl.basic.model.pc.source.entity.SourceEntity; -import com.ycwl.basic.repository.ScenicRepository; -import com.ycwl.basic.repository.VideoRepository; -import com.ycwl.basic.service.pc.ScenicService; -import com.ycwl.basic.storage.adapters.IStorageAdapter; -import com.ycwl.basic.storage.utils.StorageUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.Strings; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.io.File; -import java.util.UUID; -import java.util.concurrent.ArrayBlockingQueue; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -@Component -@Slf4j -public class VideoReUploader { - private static final ThreadFactory threadFactory = new ThreadFactoryBuilder() - .setNamePrefix("Vid-ReUp-") - .build(); - private static final ThreadPoolExecutor executor = new ThreadPoolExecutor(1, 1024, 0L, TimeUnit.MILLISECONDS, - new ArrayBlockingQueue<>(1024), - threadFactory - ); - - @Autowired - private SourceMapper sourceMapper; - @Autowired - private ScenicService scenicService; - @Autowired - private VideoMapper videoMapper; - @Autowired - private VideoRepository videoRepository; - @Autowired - private ScenicRepository scenicRepository; - - public void addTask(Long sourceId) { - SourceEntity entity = sourceMapper.getEntity(sourceId); - if (entity == null) { - return; - } - if (entity.getScenicId() == null) { - return; - } - if (entity.getType() != 1) { - return; - } - ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(entity.getScenicId()); - if (scenicConfig == null || scenicConfig.getLocalStoreType() == null || scenicConfig.getLocalStoreConfigJson() == null) { - return; - } - final String dstFilePath = StorageUtil.joinPath(StorageConstant.VIDEO_PIECE_PATH, entity.getId().toString() + ".mp4"); - final IStorageAdapter adapter = scenicService.getScenicStorageAdapter(entity.getScenicId()); - if (Strings.CS.equals(entity.getVideoUrl(), adapter.getUrl(dstFilePath))) { - return; - } - String tmpFilePath = UUID.randomUUID().toString(); - executor.execute(() -> { - // 先下载,后上传 - File dstFile = new File(tmpFilePath); - log.info("下载视频:{};sourceId:{}", entity.getVideoUrl(), sourceId); - long size = HttpUtil.downloadFile(entity.getVideoUrl(), dstFile); - log.info("下载视频完成:{};大小:{};sourceId:{}", entity.getVideoUrl(), size, sourceId); - try { - log.info("开始上传:{};sourceId:{}", dstFilePath, sourceId); - String newUrl = adapter.uploadFile("video/mp4", dstFile, dstFilePath); - log.info("上传成功:{};sourceId:{}", newUrl, sourceId); - SourceEntity updateEntity = new SourceEntity(); - updateEntity.setId(sourceId); - updateEntity.setVideoUrl(newUrl); - sourceMapper.update(updateEntity); - } catch (Exception e) { - log.info("上传失败:{};sourceId:{}", dstFilePath, sourceId, e); - } finally { - try { - dstFile.delete(); - } catch (Exception ignored) { - } - } - }); - } -} diff --git a/src/test/java/com/ycwl/basic/utils/VideoReUploaderTest.java b/src/test/java/com/ycwl/basic/utils/VideoReUploaderTest.java deleted file mode 100644 index 7bbb832f..00000000 --- a/src/test/java/com/ycwl/basic/utils/VideoReUploaderTest.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ycwl.basic.utils; - -import lombok.extern.slf4j.Slf4j; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@Slf4j -@SpringBootTest -@RunWith(SpringRunner.class) -public class VideoReUploaderTest { - @Autowired - private VideoReUploader videoReUploader; - - @Test - public void testReUpload() throws InterruptedException { - videoReUploader.addTask(3975968518398152704L); - Thread.sleep(1_000_000L); - } -} \ No newline at end of file