Olá, gostaria de criar um agendador que executasse meu método de tempo em tempo, sei que o quartz faz esse trabalho, mas pesquisei sobre o TimerTask, alguém tem um exemplo simples:
public void run() {
if (System.currentTimeMillis() - scheduledExecutionTime() >= MAX_TARDINESS)
return; // Too late; skip this execution.
// Perform the task
}
import java.util.Timer;
import java.util.TimerTask;
public class MyTimer {
public static final long TEMPO = (1000 * 60); // atualiza o site a cada 1 minuto
public static void main(String[] args) {
System.out.println("inicio");
Timer timer = null;
if (timer == null) {
timer = new Timer();
TimerTask tarefa = new TimerTask() {
public void run() {
try {
System.out.println("Teste agendador");
//chamar metodo
} catch (Exception e) {
e.printStackTrace();
}
}
};
timer.scheduleAtFixedRate(tarefa, TEMPO, TEMPO);
}
}
}
Eu geralmente confio mais no gerador de “clock” com oscilador de cristal dos computadores do que nas classes “timer” do Java para fazer esse tipo de tarefa. Um “Thread.sleep(int milissegundos)” conseguia resolver meu problema de executar uma tarefa em intervalos regulares. Tenho más experiências com as classes “timer” porque a máquina onde meu código rodava era um cliente de um servidor NTP meio doido, o que provavelmente fazia as classes “timer” se perderem completamente…