Possuo um servlet que executa varias intruções, porem existem instruções que devem ser executadas sem a necessidade de uma solicitação de usuário, tipo uma execução a cada 1hora.
Como eu posso fazer isso?
Não sei quase nada de servlet minha classe extende a httpservlet
Public class MeuServlet extends httpservlet{
MeuServlet(){ ..Instruções ...}
Public void init(){ ..Instruções ...}
{E assim por diante...}
}
Pensei em criar um thread que iniciasse junto com o servlet mas o servlet só é construído quando existe uma solicitação e este processo precisa executar independente de existir qualquer solicitação…
Não sei se fui explicito na pergunta mas essa é a questão de não conseguir achar nada no google. NÂO SEI COMO PROCURAR!!!
Agradeço a atenção e peço uma ajuda a quem tem idéia!
Pois é galera, aqui na empresa agente tem um scheduler, mas não gostaria de usar ele!
O servlet não possui um metodo que é executado 1 vez só? tipo na inicializaão do tomcat.
Quando o tomcat é iniciado ele não executa nada no servlet? nenhum metodo?
porque se ele executa algum metodo antes de começar a escutar solicitações eu poderia colocar uma thread executando em paralelo e colocar qualquer comando ali dentro.
[quote=ricoldi]Pois é galera, aqui na empresa agente tem um scheduler, mas não gostaria de usar ele!
O servlet não possui um metodo que é executado 1 vez só? tipo na inicializaão do tomcat.
Quando o tomcat é iniciado ele não executa nada no servlet? nenhum metodo?
porque se ele executa algum metodo antes de começar a escutar solicitações eu poderia colocar uma thread executando em paralelo e colocar qualquer comando ali dentro.
Entendem ??
Agradeço as respostas Rafael Nunes e Esb.
Aguardo ajudas! [/quote]
Toda vez que o tomcat sobe a sua aplicação ele executa o método init() do seu servlet (se você sobrescreveu o init() de HttpServlet, logicamente).
Pra testar, sobrescreva o init() no seu servlet, coloca um System.out nele, configura a propriedade “load-on-startup” (1) do seu servlet no web.xml e observe o console.
[editado]
Mas por que você precisa fazer isso num servlet? Tem uma classe chamada TimerTask que pode te ajudar nisso. Dá uma olhada no Javadoc dela.
[/editado]
<servlet>
<servlet-name>FlexMxmlServlet</servlet-name>
<display-name>MXML Processor</display-name>
<description>Servlet wrapper for the Mxml Compiler</description>
<servlet-class>flex.bootstrap.BootstrapServlet</servlet-class>
<init-param>
<param-name>servlet.class</param-name>
<param-value>flex.mxml2.MxmlServlet</param-value>
</init-param>
<load-on-startup>1</load-on-startup> //Aqui é a chave!! grande Adolfo Rodrigues
</servlet>