Jelajahi Sumber

增加删除过期文件任务

wukai 1 tahun lalu
induk
melakukan
c505006cc9

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

@@ -23,7 +23,7 @@ public interface IOutProcessService {
     public void deleteFtpFile();
 
     /**
-     * 解压文件
+     * 删除过期备份文件
      */
-    public void unzip();
+    void clean(int day);
 }

+ 28 - 5
sync-out/src/main/java/com/jjt/out/service/impl/OutProcessServiceImpl.java

@@ -13,12 +13,14 @@ import com.jjt.out.service.IOutSyncInfoService;
 import com.jjt.system.service.ISysConfigService;
 import net.lingala.zip4j.ZipFile;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.io.File;
+import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.nio.file.StandardCopyOption;
@@ -162,11 +164,32 @@ public class OutProcessServiceImpl extends OutBaseService implements IOutProcess
     }
 
     /**
-     * 解压文件
+     * 删除过期文件
      */
     @Override
-    public void unzip() {
-
+    public void clean(int day) {
+        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));
+            }
+            long d = System.currentTimeMillis();
+            for (File file : files) {
+                if (now - file.lastModified() > ex) {
+                    try {
+                        FileUtils.delete(file);
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }
     }
-
-}
+}

+ 4 - 0
sync-out/src/main/java/com/jjt/out/task/OutProcessTask.java

@@ -19,4 +19,8 @@ public class OutProcessTask {
     public void sync() {
         processService.sync();
     }
+
+    public void clean(int day) {
+        processService.clean(day);
+    }
 }

+ 47 - 24
sync-out/src/test/java/com/test/Test.java

@@ -9,38 +9,61 @@ import org.elasticsearch.common.xcontent.XContentBuilder;
 import org.elasticsearch.common.xcontent.json.JsonXContent;
 
 import java.io.File;
+import java.io.FileFilter;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.Comparator;
 import java.util.Date;
 
 public class Test {
     public static void main(String[] args) throws Exception {
-        Date d = new Date(1634433572000l);
-
-        System.err.println(d);
-
-
-        IndexRequest indexRequest = new IndexRequest();
-        XContentBuilder builder;
-        try {
-            builder = JsonXContent.contentBuilder()
-                    .startObject()
-                    .startObject("query")
-                    .startObject("range")
-                    .startObject("time")
-                    .field("lte", 1634433572000l)
-                    .endObject()
-                    .endObject()
-                    .endObject()
-                    .endObject();
-            indexRequest.source(builder);
-        } catch (IOException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
+        int day = 14;
+        day = day * 24 * 60 * 60 * 1000;
+        String bakDir = "D:\\SYSTEM\\Desktop\\temp\\test";
+        // 创建File对象
+        File dirFile = new File(bakDir);
+        if (dirFile.isDirectory()) {
+            //先获取目录下所有文件
+            long d = System.currentTimeMillis();
+            File[] files = dirFile.listFiles();
+            //按照文件创建时间升序排列
+            if (files != null && files.length > 0) {
+                Arrays.sort(files, Comparator.comparing(File::lastModified));
+            }
+            for (File file : files) {
+                if (d - file.lastModified() > day) {
+                    FileUtils.delete(file);
+                }
+            }
         }
-        String source = indexRequest.source().utf8ToString();
-        System.err.println(source);
+
+//        Date d = new Date(1634433572000l);
+//
+//        System.err.println(d);
+//
+//
+//        IndexRequest indexRequest = new IndexRequest();
+//        XContentBuilder builder;
+//        try {
+//            builder = JsonXContent.contentBuilder()
+//                    .startObject()
+//                    .startObject("query")
+//                    .startObject("range")
+//                    .startObject("time")
+//                    .field("lte", 1634433572000l)
+//                    .endObject()
+//                    .endObject()
+//                    .endObject()
+//                    .endObject();
+//            indexRequest.source(builder);
+//        } catch (IOException e) {
+//            // TODO Auto-generated catch block
+//            e.printStackTrace();
+//        }
+//        String source = indexRequest.source().utf8ToString();
+//        System.err.println(source);
 //        Files.delete(Paths.get("D:\\SYSTEM\\Desktop\\temp\\zip"));
 //        File file = new File("D:\\SYSTEM\\Desktop\\temp\\624");
 //        FileUtils.deleteDirectory(file);