dengsixing vor 2 Jahren
Ursprung
Commit
120e2128f3

+ 40 - 13
src/main/java/com/fdkankan/download/service/impl/CheckProgressRunnerImpl.java

@@ -42,23 +42,50 @@ public class CheckProgressRunnerImpl implements CommandLineRunner {
             return;
         }
         try {
-            //查询还没下载完毕的场景
-            List<String> downLoadList = redisUtil.lGet(RedisKey.SCENE_DOWNLOAD_ING, 0, -1);
-            if(CollUtil.isEmpty(downLoadList)){
-                return;
-            }
-            //删除还没执行完毕的场景缓存
-            redisUtil.del(RedisKey.SCENE_DOWNLOAD_ING);
+            //v4场景回队
+            this.pushBackDownloadTask();
 
-            List<String> taskList = downLoadList.stream().map(num -> {
-                return JSON.toJSONString(DownLoadTaskBean.builder().num(num).type("local").build());
-            }).collect(Collectors.toList());
-
-            //从新入队
-            redisUtil.lLeftPushAll(RedisKey.SCENE_DOWNLOADS_TASK_V4, taskList);
+            //v3场景回队
+            this.pushBackDownloadTaskV3();
 
         }finally {
             redisLockUtil.unlockLua(lockKey);
         }
     }
+
+    private void pushBackDownloadTask(){
+        //查询还没下载完毕的场景
+        List<String> downLoadList = redisUtil.lGet(RedisKey.SCENE_DOWNLOAD_ING, 0, -1);
+        if(CollUtil.isEmpty(downLoadList)){
+            return;
+        }
+        //删除还没执行完毕的场景缓存
+        redisUtil.del(RedisKey.SCENE_DOWNLOAD_ING);
+
+        List<String> taskList = downLoadList.stream().map(num -> {
+            return JSON.toJSONString(DownLoadTaskBean.builder().num(num).type("local").build());
+        }).collect(Collectors.toList());
+
+        //从新入队
+        redisUtil.lLeftPushAll(RedisKey.SCENE_DOWNLOADS_TASK_V4, taskList);
+    }
+
+    private void pushBackDownloadTaskV3(){
+        //查询还没下载完毕的场景
+        List<String> downLoadList = redisUtil.lGet(RedisKey.SCENE_V3_DOWNLOAD_ING, 0, -1);
+        if(CollUtil.isEmpty(downLoadList)){
+            return;
+        }
+        //删除还没执行完毕的场景缓存
+        redisUtil.del(RedisKey.SCENE_V3_DOWNLOAD_ING);
+
+        List<String> taskList = downLoadList.stream().map(num -> {
+            return JSON.toJSONString(DownLoadTaskBean.builder().num(num).type("local").build());
+        }).collect(Collectors.toList());
+
+        //从新入队
+        redisUtil.lLeftPushAll(RedisKey.DOWNLOAD_TASK, taskList);
+    }
+
+
 }

+ 8 - 4
src/main/java/com/fdkankan/download/service/impl/SceneDownloadHandlerServiceImpl.java

@@ -203,6 +203,7 @@ public class SceneDownloadHandlerServiceImpl {
         String num = downLoadTaskBean.getNum();
         //zip包路径
         String zipPath = null;
+        ZipOutputStream out = null;
 
         try {
 
@@ -227,7 +228,7 @@ public class SceneDownloadHandlerServiceImpl {
             if(!zipFile.getParentFile().exists()){
                 zipFile.getParentFile().mkdirs();
             }
-            ZipOutputStream out = new ZipOutputStream(zipFile);
+            out = new ZipOutputStream(zipFile);
 
             String sceneJsonData = fYunFileService.getFileContent(bucket, String.format(UploadFilePath.DATA_VIEW_PATH, num) + "scene.json");
             JSONObject sceneJson = JSONUtil.parseObj(sceneJsonData);
@@ -283,7 +284,8 @@ public class SceneDownloadHandlerServiceImpl {
             this.updateProgress( null, num, SceneDownloadProgressStatus.DOWNLOAD_FAILED.code(), null, "v4");
             throw e;
         }finally {
-            if(StrUtil.isNotBlank(zipPath)){
+            if(Objects.nonNull(out)){
+                out.close();
                 //删除本地zip包
                 FileUtils.deleteFile(zipPath);
             }
@@ -295,6 +297,7 @@ public class SceneDownloadHandlerServiceImpl {
         String num = downLoadTaskBean.getSceneNum();
         //zip包路径
         String zipPath = null;
+        ZipOutputStream out = null;
 
         try {
 
@@ -319,7 +322,7 @@ public class SceneDownloadHandlerServiceImpl {
             if(!zipFile.getParentFile().exists()){
                 zipFile.getParentFile().mkdirs();
             }
-            ZipOutputStream out = new ZipOutputStream(zipFile);
+            out = new ZipOutputStream(zipFile);
 
             int imagesVersion =0;
             String resolution = "2k";
@@ -362,7 +365,8 @@ public class SceneDownloadHandlerServiceImpl {
             this.updateProgress( null, num, SceneDownloadProgressStatus.DOWNLOAD_FAILED.code(), null, "v3");
             throw e;
         }finally {
-            if(StrUtil.isNotBlank(zipPath)){
+            if(Objects.nonNull(out)){
+                out.close();
                 //删除本地zip包
                 FileUtils.deleteFile(zipPath);
             }