A ideia é a seguinte, preciso esperar que algumas entidades confirmem que receberam minha mensagem, assim enquanto nao recebi todas as confirmações, o while continua. Como faço para dar timeout nesse while?
Tipo, eu fico nesse while até todas confirmarem, se demorar muito para receber a confirmação de todas, dou timeout e tento enviar novamente.
Obrigado pela ajuda!
Você pode considerar uma data limite e salvar o millis dela.
Algo assim:
long limit = new DateTime().minuteOfDay().addToCopy(30).getMillis();
while(true) {
// Faz o que tem que fazer
if (System.currentTimeMillis() > limit)
throw new TimeoutException("Time out."); // Ou outra exception já que essa obriga você a colocar o try...catch
}
Seria interessante se você executasse essa verificação a cada 5 ou 10 voltas… (dependendo do tempo que cada uma leva)