1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Iniciar um método Timer/TimerTask ao executar o servidor (Apache Tomcat)

Bom dia.

Estou fazendo um sistema, e preciso que uma função seja executada de minuto em minuto. Dentro dela eu vou precisar buscar informações no banco de dados, serão horários no banco, e caso esse horário seja o correto, irá efetuar certa ação.

Meu problema é que eu não sei como iniciar a função pra que ele seja 'ativada' na hora que eu dou start no server.

Vi alguma coisa que eu posso colocar a classe no web.xml para iniciar, tentei de algumas forma mas não deu certo.

Meu pacote com o timer se chama: br.com.sistemaWebTCC.rotina; a classe no pacote se chama: 'RotinaDeTempo'. Que por enquanto está assim:

package br.com.sistemaWebTCC.rotina;


import java.util.Timer;
import java.util.TimerTask;

public class RotinaDeTempo implements Runnable{


    public void run(){
            long delay = 1000;   // delay de 5 seg.
            long interval = 1000;  // intervalo de 1 seg.
            Timer timer = new Timer();

            timer.scheduleAtFixedRate(new TimerTask() {
                  public void run() {
                        System.out.print("TESTE TIMER");
                  }
                }, delay, interval);

    }
}

Sobre o servlet no web.xml eu tinha tentando algo parecido com isso:

  <servlet>    
        <servlet-name>RotinaDeTempo </servlet-name>    
        <servlet-class>br.com.sistemaWebTCC.rotina.RotinaDeTempo</servlet-class>    
        <load-on-startup>1</load-on-startup>    
  </servlet>

Sou meio amador ainda se tratando de servlet, então não tenho nem certeza se posso iniciar uma classe normal como um servlet. Qual a tag no xml para inicializar em vez de servlet uma classe, no caso a RotinaDeTempo? ou usa realmente a mesma dos servlet? Eu estou fazendo confusão haha enfim.. não estou conseguindo resolver isso.

Alguém sabe como inicio esse método toda vez que eu rodar meu server tomcat? E já aproveitando, se minha função do Timer está correta também.

Obrigado!

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags tomcat web.xml servlets ou faça a sua própria pergunta.