Tenho um servlet que gera numeros primos e que possui um tempo de execução de aproximadamente 10 segundos. Preciso depois de um determinado tempo terminar a execução deste servlet (por exempo 3 segundo.).
Sei que o comando destroy() termina a execução de um servlet, mas implemente porém não tive êxito.
Alguem poderia me exemplificar como poderia fazer para conseguir o meu objetivo ? ou seja interromper a execução da servlet de primos ?
preciso muito da ajuda de vocês desde já muito grado pelas considerações.
O método destroy é chamado pelo contêiner qd este estiver descarregando os servlets em memória num shut-down.
Vc pode dar um return.
Se vc quiser que ela pare de executar por um certo tempo e depois continue, vc então pode usar o método wait(milliseconds). Só que neste caso nenhum outro método poderá ser chamado até que o servlet “acorde”.
P
PitsBrownPJ
Oi fabiophx !
obrigado por ter me respondido. porém eu não sei como usar o destroy. O meu conteiner é Tomcat. Eu tenho que progrmar no tomcat ? Eu pensava que era só usar destroy(); e cancelava o servlet.
o que gostaria era fazer com que um classe cancele a execução de um servlet.
o método wait, thread.sleep interrompem sim por um tempo que eu desejar.
mas o que gostaria era saber como usar o destroy. Sei que é chamado pelo contêiner… mas não sei alguem sabe como CANCELO UM SERVLET ?
Como uso o DETROY ?
Valeu turma… ! A saga continua…
S
SchuenemannPJ
O destroy() é o método que o container chama quando o servlet acaba. Ele não serve pra interromper um servlet.
Que mal lhe pergunte, pra que você quer interromper ele?
P
PitsBrownPJ
Olá Schuenemann !
Quero cancelar o processo de servlets demorados.
Você conheceria alguma outra forma de conseguir isso ?
Ou seja cancelar um servlet ?
Quando executo o codigo abaixo em uma classe com main ele opera de acordo com o que quero…
for(inti=1; i <= 9999999; i++ ){if(i==9973)System.exit(0);}
Mas se faço isso em um servlet… não funciona…
Como poderia fazer ?
Grato a todos que puderem ajudar…
F
fabiophxPJ
PitsBrown, realmente não sei como cancelar um servlet.
O que vc pode fazer é criar uma classe com este processo demorado que extenda java.lang.Thread onde vc pode usar o interrupt().
Tb vc pode fazer o mesmo extendendo java.util.TimerTask que possui um método cancel(). Neste caso pode usá-la sozinha ou juntamente com java.util.Timer.schedule().