问题:
从FTP服务器检索大文件(20GB)时挂起 处理所有与之相关的过程。因此,我们得出的解决方案主要是 文件大约1到2MB,可以在2到3秒内轻松播放,如果我们 无法在3Sec中检索文件,则我们将中止 FTP连接。
API:
我正在使用Apache commons-net-3.3.jar “ org.apache.commons.net.ftp.FTPClient”
尝试1:
ftpClient.setDataTimeout(3000)
ftpClient.setConnectionTimeout(3000)
尝试2:
TimerTask startThreadToAbort = startThreadToAbort(ftpClient);
Timer timer = new Timer(true);
timer.schedule(startThreadToAbort, 3000);
ftpClient.retrieveFileStream("abc.txt")
timer.cancel();
cancelThread(startThreadToAbort);
public static TimerTask startThreadToAbort(final FTPClient ftpClient) {
return new TimerTask() {
@Override
public void run() {
if (ftpClient != null) {
try {
log.debug("Start Aborting Connection");
ftpClient.abort();
log.debug("Force fully FTP Connection timeout");
} catch (IOException e) {
log.error(e);
}
}
}
};
}
但是它在获取代码时挂了电话,从没去过 startThreadToAbort