Просмотр исходного кода

增加rabbitmq消费者,用户删除场景时清除场景oss、nas文件

dsx 2 лет назад
Родитель
Сommit
a06685b588

+ 18 - 1
4dkankan-task/src/main/java/com/fdkankan/task/listener/MqListener.java

@@ -27,11 +27,28 @@ public class MqListener {
             queues = "QUEUE_DELETE_S3_FILE",
             concurrency = "${maxThread.scene.deleteS3File}"
     )
-    public void buildScenePreHandler(Channel channel, Message message) throws Exception {
+    public void deleteS3File(Channel channel, Message message) throws Exception {
         String num = new String(message.getBody(), StandardCharsets.UTF_8);
         log.info("mq监听,删除s3无用资源开始,场景码:{}", num);
         scenePlusService.deleteV3DirHandler(num);
         log.info("mq监听,删除s3无用资源结束,场景码:{}", num);
     }
 
+    /**
+     * 场景计算前置资源准备处理
+     * @param channel
+     * @param message
+     * @throws Exception
+     */
+    @RabbitListener(
+            queues = "DELETE_SCENE_NOTICES",
+            concurrency = "5"
+    )
+    public void deleteScene(Channel channel, Message message) throws Exception {
+        String num = new String(message.getBody(), StandardCharsets.UTF_8);
+        log.info("mq监听,删除场景开始,场景码:{}", num);
+        scenePlusService.deleteSceneHandler(num);
+        log.info("mq监听,删除场景结束,场景码:{}", num);
+    }
+
 }

+ 21 - 21
4dkankan-task/src/main/java/com/fdkankan/task/schedule/ScheduleJob.java

@@ -73,27 +73,27 @@ public class ScheduleJob {
 //        }
 //    }
 
-    @Scheduled(fixedDelay = 2*24*60*60*1000)
-    public void deleteSceneData(){
-        ExecutorService executorService = Executors.newFixedThreadPool(1);
-        List<ScenePro> list = sceneProService.listDeleteScene(userId);
-        if(CollUtil.isEmpty(list)){
-            return;
-        }
-        for (ScenePro scenePro : list) {
-            String num = scenePro.getNum();
-            try {
-                executorService.submit(()->{
-                    scenePlusService.deleteSceneHandler(num);
-                });
-            }catch (Exception e){
-                log.error("删除场景全部数据失败,num:" + num, e);
-            }
-
-        }
-
-
-    }
+//    @Scheduled(fixedDelay = 2*24*60*60*1000)
+//    public void deleteSceneData(){
+//        ExecutorService executorService = Executors.newFixedThreadPool(1);
+//        List<ScenePro> list = sceneProService.listDeleteScene(userId);
+//        if(CollUtil.isEmpty(list)){
+//            return;
+//        }
+//        for (ScenePro scenePro : list) {
+//            String num = scenePro.getNum();
+//            try {
+//                executorService.submit(()->{
+//                    scenePlusService.deleteSceneHandler(num);
+//                });
+//            }catch (Exception e){
+//                log.error("删除场景全部数据失败,num:" + num, e);
+//            }
+//
+//        }
+//
+//
+//    }
 
 
 

+ 8 - 0
4dkankan-task/src/main/java/com/fdkankan/task/service/impl/ScenePlusServiceImpl.java

@@ -1,11 +1,13 @@
 package com.fdkankan.task.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.constant.UploadFilePath;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.redis.constant.RedisKey;
@@ -188,6 +190,12 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
                 uploadToOssUtil.deleteFile(bucket, userEditPath);
             }
 
+            //删除nas目录
+            String dataSource = scenePlusExt.getDataSource();
+            if(dataSource.length() > "/mnt/data/".length()){
+                FileUtil.del(dataSource);
+            }
+
             redisUtil.sSet(TaskConstant.deleteNumKey, num);
             log.info("删除场景全部数据结束,num:{}", num);
         }catch (Exception e){