Home   Java   Agendador de Tarefas Quartz

Agendador de Tarefas Quartz
Agendador de Tarefas Quartz

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.
timer-icon

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

Gostou do post? Agradeça o autor compartilhando nas redes sociais. Clique nos links abaixo:

Deixe uma resposta

Get Best Services from Our Business.