Pergunta

Estou usando a rede do Commons FTPClient Classe para pesquisar periodicamente um site FTP e tentar baixar um arquivo. Ocasionalmente, o tópico está bloqueando indefinidamente ao tentar ler do site e me perguntei se alguém mais havia encontrado esse problema e poderia oferecer alguma solução alternativa?

estou a usar FTPClient's retrieveFileStream(String) Método para obter um identificador para um inseto, da qual tento ler. Abaixo está um rastreamento parcial da pilha do fio bloqueado.

"FTP File Poll Thread" prio=10 tid=0x083b0800 nid=0x6324 runnable [0x65b5b000..0x65b5beb0]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
        - locked <0x5c851928> (a java.io.BufferedInputStream)
        at java.io.FilterInputStream.read(FilterInputStream.java:66)
        at java.io.PushbackInputStream.read(PushbackInputStream.java:122)
        at org.apache.commons.net.io.FromNetASCIIInputStream.__read(FromNetASCIIInputStream.java:75)
        at org.apache.commons.net.io.FromNetASCIIInputStream.read(FromNetASCIIInputStream.java:170)
        at java.io.FilterInputStream.read(FilterInputStream.java:116)
Foi útil?

Solução 2

O Kludge que acabei usando aqui foi agendar uma tarefa para aumentar um alerta se a operação FTP levou mais de x segundos. Eu realmente encontrei Javanioftp No Sourceforge, mas na minha situação, isso não garante a sobrecarga de desenvolvimento na troca de clientes.

Outras dicas

Java.io está bloqueando, você precisa usar o pacote java.nio. Nunca usei FTP com java.nio, mas assuma que deve funcionar porque o HTTP pode funcionar com o java.nio.

Cumprimentos

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top