X秒后强制完全FTP连接超时

时间:2019-07-19 09:21:47

标签: java ftp

问题

  

从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

0 个答案:

没有答案