From 4de91039822b571db3ceee8cedf351455e31fc24 Mon Sep 17 00:00:00 2001
From: 钟日健 <5689795+arsn@user.noreply.gitee.com>
Date: Thu, 19 May 2022 11:08:21 +0800
Subject: [PATCH] 设置连接超时

---
 src/main/java/org/springblade/modules/FTP/Monitor.java |   50 ++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 42 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/springblade/modules/FTP/Monitor.java b/src/main/java/org/springblade/modules/FTP/Monitor.java
index 75efc63..c43f4e4 100644
--- a/src/main/java/org/springblade/modules/FTP/Monitor.java
+++ b/src/main/java/org/springblade/modules/FTP/Monitor.java
@@ -9,6 +9,8 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 
 import static org.springblade.common.config.FtpConfig.*;
 
@@ -16,7 +18,7 @@
 @Component
 public class Monitor {
 
-	@Scheduled(cron = "*/1 * * * * ?")
+//	@Scheduled(cron = "*/5 * * * * ?")
 	public static boolean isFTPFileExist() {
 
 		FTPClient ftp = new FTPClient();
@@ -34,6 +36,8 @@
 				return false;
 			}
 
+			System.out.println("ftp 连接成功!时间: "+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+
 			//被动模式,文件上传不成功会有提示
 			ftp.enterLocalActiveMode();
 
@@ -47,13 +51,13 @@
 			ftp.changeWorkingDirectory(ftpPath);
 			FTPFile[] files = ftp.listFiles();
 			if (files.length == 0) {
-				return false;
+				ftp.disconnect();
 			} else {
 				for (FTPFile file : files) {
-					 fileName = file.getName();
+					fileName = file.getName();
 					InputStream is = ftp.retrieveFileStream(new String(fileName.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING));
 					if (null == is) {
-						return false;
+						ftp.disconnect();
 					} else {
 						String substring1 = fileName.substring(0, 1);
 						//把文件下载到本地
@@ -103,6 +107,36 @@
 							MysqlCenlint.deletess(fileName);
 							//删除 ftp 文件
 							FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, "anbao/", fileName);
+						}else if(substring1.equals("t")){
+							//培训报名数据
+							//获取对象字符串
+							String json = OutJson.TestJson(fileName);
+							//数据处理
+							DataHanlder.handlerListTrain(json);
+							//删除本地文件
+							MysqlCenlint.deletess(fileName);
+							//删除 ftp 文件
+							FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, "anbao/", fileName);
+						}else if(substring1.equals("s")){
+							//获取保安员证编号数据
+							//获取对象字符串
+							String json = OutJson.TestJson(fileName);
+							//数据处理
+							DataHanlder.handlerSecurityNumerBit(json);
+							//删除本地文件
+							MysqlCenlint.deletess(fileName);
+							//删除 ftp 文件
+							FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, "anbao/", fileName);
+						}
+//						else if(substring1.equals("f")){
+//							//把文件下载到本地(图片文件类),测试内外网使用同一台服务器
+//							FtpUtil.downloadFtpFile(ftpHost, ftpUserName, ftpPassword, ftpPort, ftpPath, minioPath, fileName);
+//							FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, "anbao/", fileName);
+//						}
+						else {
+							//把文件下载到本地(图片文件类),ftp 内外网服务器分开时使用
+							FtpUtil.downloadFtpFile(ftpHost, ftpUserName, ftpPassword, ftpPort, ftpPath, minioPath, fileName);
+							FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, "anbao/", fileName);
 						}
 						//删除本地文件,ftp 文件没有对应读取的不删除
 						MysqlCenlint.deletess(fileName);
@@ -112,17 +146,17 @@
 				}
 				return true;
 			}
-
 		} catch (Exception e) {
 			MysqlCenlint.deletess(fileName);
 			FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, "anbao/", fileName);
 			e.printStackTrace();
 		} finally {
-			if (ftp != null) {
+			//如果ftp 没有关闭,则关闭ftp
+			if (ftp.isConnected()) {
 				try {
 					ftp.disconnect();
-				} catch (IOException e) {
-					e.printStackTrace();
+				} catch (IOException io) {
+					io.printStackTrace();
 				}
 			}
 		}

--
Gitblit v1.9.3