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