Agendador de Tarefas Quartz
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/feltexco/public_html/felix/wp-content/plugins/wp-syntax/wp-syntax.php on line 380
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/feltexco/public_html/felix/wp-content/plugins/wp-syntax/wp-syntax.php on line 380
Agendador de Tarefas Quartz
Olá Amigos,
Hoje faremos um agendador de Tarefas Quartz Framework. Um agendador de tarefas é um processo que será executado em uma determinada data e horário específico. Esse momento de execução pode ser cíclico, ou seja, há uma repetição (diária, semanal, mensal, anual) ou em intervalos menores como (segundos, minutos ou horas).
Utilizaremos a versão 2.2.
Para iniciar faça o download dos arquivos no site oficial. Esses são os arquivos necessário que você deve adicionar no class path da aplicação.
c3p0-0.9.1.1.jar log4j-1.2.16.jar quartz-2.2.1.jar quartz-jobs-2.2.1.jar slf4j-api-1.6.6.jar slf4j-log4j12-1.6.6.jar
No código abaixo criaremos a classe que conterá a regra de negócio que vai ser agendada para execução.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package br.com.feltex.quartz; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class AtualizaCadastroJOB implements Job { //Aqui fica o código que será executado pelo agendamento. // Caso ocorra um erro de execução uma exceção será lançada. public void execute(JobExecutionContext context) throws JobExecutionException { System.out.println("Cadastro atualizado com sucesso!"); } } |
Em seguida criaremos a classe que dispara o JOB. Fiz comentário em cada linha para que fique bem claro o que está sendo feito.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | package br.com.feltex.quartz; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SimpleScheduleBuilder; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; // Classe que dispara o JOB public class AgendaTrigger { public static void main(String[] args) { try { // Registrando a classe que execurá meus métodos de negócio JobDetail job = JobBuilder.newJob(AtualizaCadastroJOB.class) .withIdentity("nomeMeuJOB", "grupoCadastro").build(); // Criado um objeto de intervalo de repetição // No nosso caso será de 2 segundos SimpleScheduleBuilder intervalo = SimpleScheduleBuilder .simpleSchedule().withIntervalInSeconds(2).repeatForever(); // Criado um disparador Trigger trigger = TriggerBuilder.newTrigger() .withIdentity("nomeDisparador", "grupoCadastro") .withSchedule(intervalo).build(); // Finalmente é criado um objeto de agendamento // que recebe o JOB e o disparador! Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.start(); scheduler.scheduleJob(job, trigger); } catch (Exception e) { e.printStackTrace(); } } } |
Pronto. Basta executar a classe “AgendaTrigger” que você verá a execução a cada 2 segundos.
Veja um exemplo de saída:
Cadastro atualizado com sucesso! Cadastro atualizado com sucesso! Cadastro atualizado com sucesso! Cadastro atualizado com sucesso! Cadastro atualizado com sucesso!
Links relacionados
Site oficial Quartz
Deixe um comentário
Você precisa fazer o login para publicar um comentário.