通用FTP Client模块设计与实现

需求来源

业务系统通过Ftp Client定时接收客户的任务,由于不同的任务对应的实际业务处理不一样,因此每个任务放置在 FTP Server 对应的不同目录中。

实现策略

实现一个FTP Client

  1)定期地取FtpServer中指定的目录下的所有文件到本地。 本地启动一个监控系统 监测指定目录的文件查到后做相应的处理。

   2)将本地某个目录下的文件上传到FTPServer某个目录中。 本地将业务数据写入到业务目录中,通知 FTP Client上传到FTP Server中。将

      由于上传业务频率并不高,因此不使用定时器的而改用通知的模式,从而减少对系统资源的占用。  

优势

将FTP模块和具体的业务系统解耦。

对该模块的性能以及质量是可测试的。

劣势

定时任务会占用系统资源。

上传业务由于使用通知模式,对于一次连接不能保证上传最多的文件,最糟糕的情况是一个文件一个连接,从而导致上传效率低下。

设计第一稿

image

代码实现

具体见 https://github.com/hlxinyan/FTPClientModule

原文地址:https://www.cnblogs.com/lily-tiantian/p/4501402.html