فهرست منبع

delete overdued files generated in the previous task

sunyj 8 سال پیش
والد
کامیت
9491b736d2
1فایلهای تغییر یافته به همراه4 افزوده شده و 3 حذف شده
  1. 4 3
      src/main/java/com/uas/report/service/impl/FileServiceImpl.java

+ 4 - 3
src/main/java/com/uas/report/service/impl/FileServiceImpl.java

@@ -584,7 +584,7 @@ public class FileServiceImpl implements FileService {
 	}
 
 	@Override
-	public TaskInformation newDeleteGeneratedFilesTask(Integer taskPeriod) {
+	public TaskInformation newDeleteGeneratedFilesTask(final Integer taskPeriod) {
 		if (taskPeriod == null) {
 			throw new NullPointerException();
 		}
@@ -595,8 +595,9 @@ public class FileServiceImpl implements FileService {
 				FileUtils.delete(new File(ReportUtils.getTmpDir()), new FileFilter() {
 					@Override
 					public boolean accept(File file) {
-						// 只删除已过期的文件
-						if (new Date().getTime() - file.lastModified() - PDF_MAX_INVALID_INTERVAL > 0) {
+						// 只删除已过期的文件(并且刚过期的文件本次不删除,以尽量避免打印耗时过长时,部分临时文件过期而被误删)
+                        long now = new Date().getTime();
+                        if (now - file.lastModified() - PDF_MAX_INVALID_INTERVAL > 0 && now - file.lastModified() - taskPeriod > 0) {
 							return true;
 						}
 						return false;