孟令鑫 1 năm trước cách đây
mục cha
commit
fb905ca634
23 tập tin đã thay đổi với 175 bổ sung29 xóa
  1. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/service/impl/AlgorithmExpandAclServiceImpl.java
  2. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/api/controller/ProjectTaskController.java
  3. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/app/service/AlgorithmExpandApplicationService.java
  4. 4 4
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/app/service/impl/AlgorithmExpandApplicationServiceImpl.java
  5. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/domain/SystemServerDomainService.java
  6. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/minio/MinioConfiguration.java
  7. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/entity/AlgorithmExpandEntity.java
  8. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/entity/GeneralEntity.java
  9. 2 2
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/mapper/AlgorithmExpandMapper.java
  10. 10 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/mapper/AlgorithmMapper.java
  11. 2 2
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/mapper/ScenePackageSublistMapper.java
  12. 10 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/mapper/SimulationManualProjectMapper.java
  13. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/mapper/SystemServerMapper.java
  14. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/redis/CustomRedisClient.java
  15. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/redis/RedisTemplateConfiguration.java
  16. 2 2
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/scheduler/AlgorithmExpandScheduler.java
  17. 61 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/scheduler/MinioCleanScheduler.java
  18. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/scheduler/ProjectScheduler.java
  19. 5 5
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/scheduler/ServerScheduler.java
  20. 43 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/util/MinioUtil.java
  21. 2 2
      simulation-resource-monitor/src/main/resources/mysql/mapper/AlgorithmExpandMapper.xml
  22. 11 0
      simulation-resource-monitor/src/main/resources/mysql/mapper/AlgorithmMapper.xml
  23. 12 0
      simulation-resource-monitor/src/main/resources/mysql/mapper/SimulationManualProjectMapper.xml

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/service/impl/AlgorithmExpandAclServiceImpl.java

@@ -7,7 +7,7 @@ import api.common.util.ObjectUtil;
 import com.css.simulation.resource.monitor.acl.entity.AlgorithmExpandAclEntity;
 import com.css.simulation.resource.monitor.acl.entity.AlgorithmExpandConfigurationAclEntity;
 import com.css.simulation.resource.monitor.acl.service.AlgorithmExpandAclService;
-import com.css.simulation.resource.monitor.infrastructure.db.redis.CustomRedisClient;
+import com.css.simulation.resource.monitor.infra.redis.CustomRedisClient;
 import com.fasterxml.jackson.databind.JsonNode;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/api/controller/ProjectTaskController.java

@@ -1,7 +1,7 @@
 package com.css.simulation.resource.monitor.api.controller;
 
 import api.common.pojo.common.ResponseBodyVO;
-import com.css.simulation.resource.monitor.infrastructure.scheduler.ProjectScheduler;
+import com.css.simulation.resource.monitor.infra.scheduler.ProjectScheduler;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/application/service/AlgorithmExpandApplicationService.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/app/service/AlgorithmExpandApplicationService.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.application.service;
+package com.css.simulation.resource.monitor.app.service;
 
 public interface AlgorithmExpandApplicationService {
     void syncAlgorithmExpand();

+ 4 - 4
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/application/service/impl/AlgorithmExpandApplicationServiceImpl.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/app/service/impl/AlgorithmExpandApplicationServiceImpl.java

@@ -1,11 +1,11 @@
-package com.css.simulation.resource.monitor.application.service.impl;
+package com.css.simulation.resource.monitor.app.service.impl;
 
 import api.common.util.CollectionUtil;
 import com.css.simulation.resource.monitor.acl.entity.AlgorithmExpandAclEntity;
 import com.css.simulation.resource.monitor.acl.service.AlgorithmExpandAclService;
-import com.css.simulation.resource.monitor.application.service.AlgorithmExpandApplicationService;
-import com.css.simulation.resource.monitor.infrastructure.db.entity.AlgorithmExpandEntity;
-import com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper.AlgorithmExpandMapper;
+import com.css.simulation.resource.monitor.app.service.AlgorithmExpandApplicationService;
+import com.css.simulation.resource.monitor.infra.mysql.entity.AlgorithmExpandEntity;
+import com.css.simulation.resource.monitor.infra.mysql.mapper.AlgorithmExpandMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/domain/SystemServerDomainService.java

@@ -1,7 +1,7 @@
 package com.css.simulation.resource.monitor.domain;
 
 import api.common.pojo.po.home.SystemServerPO;
-import com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper.SystemServerMapper;
+import com.css.simulation.resource.monitor.infra.mysql.mapper.SystemServerMapper;
 import org.apache.ibatis.session.ExecutorType;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/fs/minio/MinioConfiguration.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/minio/MinioConfiguration.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.infrastructure.fs.minio;
+package com.css.simulation.resource.monitor.infra.minio;
 
 import io.minio.MinioClient;
 import lombok.Data;

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/entity/AlgorithmExpandEntity.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/entity/AlgorithmExpandEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.infrastructure.db.entity;
+package com.css.simulation.resource.monitor.infra.mysql.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/entity/GeneralEntity.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/entity/GeneralEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.infrastructure.db.entity;
+package com.css.simulation.resource.monitor.infra.mysql.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 2 - 2
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/mysql/mapper/AlgorithmExpandMapper.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/mapper/AlgorithmExpandMapper.java

@@ -1,6 +1,6 @@
-package com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper;
+package com.css.simulation.resource.monitor.infra.mysql.mapper;
 
-import com.css.simulation.resource.monitor.infrastructure.db.entity.AlgorithmExpandEntity;
+import com.css.simulation.resource.monitor.infra.mysql.entity.AlgorithmExpandEntity;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;

+ 10 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/mapper/AlgorithmMapper.java

@@ -0,0 +1,10 @@
+package com.css.simulation.resource.monitor.infra.mysql.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface AlgorithmMapper {
+    List<String> selectMinioPaths();
+}

+ 2 - 2
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/mysql/mapper/ScenePackageSublistMapper.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/mapper/ScenePackageSublistMapper.java

@@ -1,6 +1,6 @@
-package com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper;
+package com.css.simulation.resource.monitor.infra.mysql.mapper;
 
-import com.css.simulation.resource.monitor.infrastructure.db.entity.GeneralEntity;
+import com.css.simulation.resource.monitor.infra.mysql.entity.GeneralEntity;
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 10 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/mapper/SimulationManualProjectMapper.java

@@ -0,0 +1,10 @@
+package com.css.simulation.resource.monitor.infra.mysql.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface SimulationManualProjectMapper {
+    List<String> selectIds();
+}

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/mysql/mapper/SystemServerMapper.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/mysql/mapper/SystemServerMapper.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper;
+package com.css.simulation.resource.monitor.infra.mysql.mapper;
 
 import api.common.pojo.po.home.SystemServerPO;
 import org.apache.ibatis.annotations.Mapper;

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/redis/CustomRedisClient.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/redis/CustomRedisClient.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.infrastructure.db.redis;
+package com.css.simulation.resource.monitor.infra.redis;
 
 import api.common.util.CollectionUtil;
 import lombok.SneakyThrows;

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/redis/RedisTemplateConfiguration.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/redis/RedisTemplateConfiguration.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.infrastructure.db.redis;
+package com.css.simulation.resource.monitor.infra.redis;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.PropertyAccessor;

+ 2 - 2
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/scheduler/AlgorithmExpandScheduler.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/scheduler/AlgorithmExpandScheduler.java

@@ -1,6 +1,6 @@
-package com.css.simulation.resource.monitor.infrastructure.scheduler;
+package com.css.simulation.resource.monitor.infra.scheduler;
 
-import com.css.simulation.resource.monitor.application.service.AlgorithmExpandApplicationService;
+import com.css.simulation.resource.monitor.app.service.AlgorithmExpandApplicationService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;

+ 61 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/scheduler/MinioCleanScheduler.java

@@ -0,0 +1,61 @@
+package com.css.simulation.resource.monitor.infra.scheduler;
+
+import com.css.simulation.resource.monitor.infra.minio.MinioConfiguration;
+import com.css.simulation.resource.monitor.infra.mysql.mapper.AlgorithmMapper;
+import com.css.simulation.resource.monitor.infra.mysql.mapper.SimulationManualProjectMapper;
+import com.css.simulation.resource.monitor.infra.util.MinioUtil;
+import io.minio.MinioClient;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Component
+@Slf4j
+public class MinioCleanScheduler {
+
+    @Resource
+    private MinioClient minioClient;
+    @Resource
+    private MinioConfiguration minioConfiguration;
+    @Resource
+    private AlgorithmMapper algorithmMapper;
+    @Resource
+    private SimulationManualProjectMapper simulationManualProjectMapper;
+
+
+    /**
+     * 每天清理一次,清理30天之前被删除的数据
+     */
+    @Scheduled(fixedDelay = 24 * 60 * 60 * 1000)
+    @SneakyThrows
+    public void clean() {
+        //1 清理算法文件
+        {
+            List<String> objects = MinioUtil.listObjects(minioClient, minioConfiguration.getBucketName(), "algorithm");
+
+            List<String> strings = algorithmMapper.selectMinioPaths();
+            for (String object : objects) {
+                if (!strings.contains(object)) {
+                    MinioUtil.removeObject(minioClient, minioConfiguration.getBucketName(), object);
+                }
+            }
+        }
+
+        //2 清理项目文件
+        {
+            List<String> objects = MinioUtil.listObjects(minioClient, minioConfiguration.getBucketName(), "project");
+            List<String> strings = simulationManualProjectMapper.selectIds();
+            for (String object : objects) {
+                String[] split = object.split("/");
+                if (!strings.contains(split[0])) {
+                    MinioUtil.removeObject(minioClient, minioConfiguration.getBucketName(), object);
+                }
+            }
+        }
+
+    }
+}

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/scheduler/ProjectScheduler.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/scheduler/ProjectScheduler.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.infrastructure.scheduler;
+package com.css.simulation.resource.monitor.infra.scheduler;
 
 import api.common.util.ObjectUtil;
 import com.css.simulation.resource.monitor.acl.service.ProjectAclService;

+ 5 - 5
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/scheduler/ServerScheduler.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/scheduler/ServerScheduler.java

@@ -1,15 +1,15 @@
-package com.css.simulation.resource.monitor.infrastructure.scheduler;
+package com.css.simulation.resource.monitor.infra.scheduler;
 
 import api.common.pojo.dto.Host;
 import api.common.pojo.po.home.SystemServerPO;
 import api.common.util.SshUtil;
 import api.common.util.StringUtil;
 import api.common.util.TimeUtil;
-import com.css.simulation.resource.monitor.infrastructure.fs.minio.MinioConfiguration;
+import com.css.simulation.resource.monitor.infra.minio.MinioConfiguration;
 import com.css.simulation.resource.monitor.domain.SystemServerDomainService;
-import com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper.ScenePackageSublistMapper;
-import com.css.simulation.resource.monitor.infrastructure.db.entity.GeneralEntity;
-import com.css.simulation.resource.monitor.infrastructure.fs.minio.MinioUtil;
+import com.css.simulation.resource.monitor.infra.mysql.mapper.ScenePackageSublistMapper;
+import com.css.simulation.resource.monitor.infra.mysql.entity.GeneralEntity;
+import com.css.simulation.resource.monitor.infra.util.MinioUtil;
 import io.minio.MinioClient;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;

+ 43 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/fs/minio/MinioUtil.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infra/util/MinioUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.infrastructure.fs.minio;
+package com.css.simulation.resource.monitor.infra.util;
 
 import io.minio.*;
 import io.minio.errors.*;
@@ -14,10 +14,52 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.List;
 
 @Slf4j
 public class MinioUtil {
 
+    /**
+     * 删除文件
+     *
+     * @param minioClient minio 客户端对象
+     * @param bucket      桶
+     * @param object      文件对象
+     */
+    @SneakyThrows
+    public static void removeObject(MinioClient minioClient, String bucket, String object) {
+        minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucket).object(object).build());
+    }
+
+    /**
+     * 获取文件列表
+     *
+     * @param minioClient minio 客户端
+     * @param bucket      bucket 名称
+     * @param prefix      目录名
+     * @return 文件路径列表
+     */
+    public static List<String> listObjects(MinioClient minioClient, String bucket, String prefix) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, io.minio.errors.InternalException {
+        Iterable<Result<Item>> objects = minioClient.listObjects(
+                ListObjectsArgs.builder()
+                        .bucket(bucket)
+                        .recursive(true)
+                        .prefix(prefix)
+                        .build()
+        );
+        List<String> result = new ArrayList<>();
+        for (Result<Item> next : objects) {
+            Item item = next.get();
+            String objectName = item.objectName();
+            result.add(objectName);
+        }
+
+        return result;
+    }
+
+
+
     /**
      * 删除文件夹
      *

+ 2 - 2
simulation-resource-monitor/src/main/resources/mysql/mapper/AlgorithmExpandMapper.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper.AlgorithmExpandMapper">
+<mapper namespace="com.css.simulation.resource.monitor.infra.mysql.mapper.AlgorithmExpandMapper">
     <insert id="insert">
         insert into algorithm_expand(id, algorithm_id, algorithm_name, description, algorithm_type, algorithm_version,
                                      team, topic, status)
@@ -24,7 +24,7 @@
 
 
     <select id="select"
-            resultType="com.css.simulation.resource.monitor.infrastructure.db.entity.AlgorithmExpandEntity">
+            resultType="com.css.simulation.resource.monitor.infra.mysql.entity.AlgorithmExpandEntity">
         select id, algorithm_id, algorithm_name, description, algorithm_type, status
         from algorithm_expand
         where 1=1

+ 11 - 0
simulation-resource-monitor/src/main/resources/mysql/mapper/AlgorithmMapper.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.css.simulation.resource.monitor.infra.mysql.mapper.AlgorithmMapper">
+
+
+    <select id="selectMinioPaths" resultType="java.lang.String">
+        select minio_path
+        from simulation.algorithm
+        where is_deleted = '0' and upload_mode = '1'
+    </select>
+</mapper>

+ 12 - 0
simulation-resource-monitor/src/main/resources/mysql/mapper/SimulationManualProjectMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.css.simulation.resource.monitor.infra.mysql.mapper.SimulationManualProjectMapper">
+
+
+    <select id="selectIds" resultType="java.lang.String">
+        select *
+        from simulation.simulation_manual_project
+        where is_deleted = '0' or (is_deleted = '1' and modify_time >= DATE_SUB(CURDATE(), INTERVAL 30 DAY));
+    </select>
+
+</mapper>