Bläddra i källkod

增加删除过期文件任务

wukai 1 år sedan
förälder
incheckning
8db52db337

+ 5 - 0
sync-in/src/main/java/com/jjt/in/service/IInProcessService.java

@@ -21,4 +21,9 @@ public interface IInProcessService {
      * 解压文件
      */
     public void unzip();
+    /**
+     * 删除过期备份文件
+     * @param day 指定过期天数
+     */
+    void clean(int day);
 }

+ 32 - 0
sync-in/src/main/java/com/jjt/in/service/impl/InProcessServiceImpl.java

@@ -174,6 +174,38 @@ public class InProcessServiceImpl extends InBaseService implements IInProcessSer
         }
     }
 
+    /**
+     * 删除过期文件
+     *
+     * @param day 指定过期天数
+     */
+    @Override
+    public void clean(int day) {
+        //将天数转换成毫秒数,乘以24小时,乘以60分钟,乘以60秒,乘以1000毫秒
+        long ex = day * 24 * 60 * 60 * 1000;
+        String bakDir = bakDir();
+        // 创建File对象
+        File dirFile = new File(bakDir);
+        long now = System.currentTimeMillis();
+        if (dirFile.isDirectory()) {
+            //先获取目录下所有文件
+            File[] files = dirFile.listFiles();
+            //按照文件创建时间升序排列
+            if (files != null && files.length > 0) {
+                Arrays.sort(files, Comparator.comparing(File::lastModified));
+            }
+            for (File file : files) {
+                if (now - file.lastModified() > ex) {
+                    try {
+                        FileUtils.delete(file);
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }
+    }
+
 
     private void handleShellType(String shellDir, File zipFile) throws IOException {
         if (StringUtils.isBlank(shellDir)) {

+ 4 - 0
sync-in/src/main/java/com/jjt/in/task/InProcessTask.java

@@ -21,4 +21,8 @@ public class InProcessTask {
         processService.deleteFtpFile();
         processService.unzip();
     }
+
+    public void clean(int day) {
+        processService.clean(day);
+    }
 }

+ 1 - 0
sync-out/src/main/java/com/jjt/out/service/IOutProcessService.java

@@ -24,6 +24,7 @@ public interface IOutProcessService {
 
     /**
      * 删除过期备份文件
+     * @param day 指定过期天数
      */
     void clean(int day);
 }

+ 2 - 1
sync-out/src/main/java/com/jjt/out/service/impl/OutProcessServiceImpl.java

@@ -165,9 +165,11 @@ public class OutProcessServiceImpl extends OutBaseService implements IOutProcess
 
     /**
      * 删除过期文件
+     * @param day 指定过期天数
      */
     @Override
     public void clean(int day) {
+        //将天数转换成毫秒数,乘以24小时,乘以60分钟,乘以60秒,乘以1000毫秒
         long ex = day * 24 * 60 * 60 * 1000;
         String bakDir = bakDir();
         // 创建File对象
@@ -180,7 +182,6 @@ public class OutProcessServiceImpl extends OutBaseService implements IOutProcess
             if (files != null && files.length > 0) {
                 Arrays.sort(files, Comparator.comparing(File::lastModified));
             }
-            long d = System.currentTimeMillis();
             for (File file : files) {
                 if (now - file.lastModified() > ex) {
                     try {