我正在编写一个连接到 FTP 服务器以读取一些文件的 Rest 服务,然后对读取的数据执行一些操作以服务于服务请求。我正在使用 Apache commons FTPClient
。
作为一个临时解决方案,我正在创建一个FTPClient
对象 - 然后连接它 - 然后使用凭据登录 -FTPClient
在我的数据访问层中的方法内(客户端是此方法的本地 - 这样做不是线程安全的),然后在退出方法之前断开它(即..在读取文件之后)。问题是,FTPClient
登录需要大约 3-7 秒,这非常高。所以我正在考虑实现一个FTPClientPool
可以在数据访问方法中提供已经准备好的客户端。
是否已经存在任何这样的 ClientPools?
如果是,那我应该选择哪一个?
如果不是,实现的困难是一旦创建和连接,apache FTPClient 能存活多久?无限时间??(我的意思是 FTPClient 的默认保持活动时间是多少 - 客户端断开连接之后的空闲时间 - 因为我在 java 文档中看到了各种时间。:() 下一个问题是你如何让它始终保持活动状态?? (可能会在一个单独的线程中定期发送 NOOPS??)关于我应该如何前进的任何帮助都非常有帮助。
感谢和问候