Tempo na execução de um método

1 resposta
albertodvm

Boa tarde Pessoal,

Gostaria de saber se tem como eu definir um tempo na execução de um método, em caso que ele demore por muito tempo…

try {  
       Thread.sleep(5000);  
                  
       String retSi = new ConsultaDBI().consultaOnLine(1, "123456789", "ES", "", "", "");  
                  
       System.out.println(retSi);  
                  
} catch (Exception e) {  
      e.printStackTrace();  
}

Se alguem souber.
Att,

1 Resposta

E

http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html#get(long,%20java.util.concurrent.TimeUnit)
http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html#cancel(boolean)

A idéia é você criar um Future com essa consulta, e usar o método get para recuperar seu resultado. Esse método get tem um timeout.
Se você vir que o get retornou null, verifique se já foi cancelada (com isCancelled), senão você força o cancelamento (com cancel (true)).

Criado 7 de maio de 2012
Ultima resposta 7 de mai. de 2012
Respostas 1
Participantes 2