Estou postando esse código pois considero bem importante, ele pode ser usado quando precisamos executar determinadas tarefas com hora marcada ou em períodos pré-determinados .
[code language="java"]import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Timer; import java.util.TimerTask; import java.util.logging.Level; import java.util.logging.Logger; /** * Classe para manipular a execução de tarefas agendadas automaticamentes * @author Jean C Becker * @version 1.0 */ public class GerarTarefasAgendadas { Timer timer; /** * Método para iniciar a execução das tarefas. */ public void iniciar() { timer = new Timer(); //Executa tarefa a cada 24 horas a partir da primeira // timer.schedule(new tarefasDiarias(), // 0, // 1 * 1000 * 60 * 60 * 24); //Executa tarefa todo dia as 6 da manha Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 6); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); Date time = calendar.getTime(); timer.schedule(new tarefasDiarias(), time); } /** * Método para interromper a execução das tarefas. */ public void parar() { timer.cancel(); } /** * Método que contém as tarefas agendadas que serão executadas. */ class tarefasDiarias extends TimerTask { public void run() { //Aqui ficam as tarefas que vão ser executadas... } } }[/code]
Olá… muito útil seu post… tirou algumas dúvidas minhas…
brigadao…
Otima dica!! resolveu meu problema! vlw!
Obrigado pelo Retorno Rafael.
Ótimo post, bem claro e direto ao ponto, parabéns.
Preciso q está classe seja chamada automaticamente, ou seja, sem a necessidade de um evento. Será que tem como fazer isso com esta classe como é feito no Quartz?