Skip to content
Felipe Castanon de Oliveira edited this page Jan 26, 2015 · 6 revisions

Suri-Scheduler

O que é?

O Suri-CDI-Scheduler é uma biblioteca que integra o Quartz ao CDI, facilitando a configuração das classes de jobs, sua manipulação e a auditoria de suas execuções. Por utilizar a ferramenta Quartz internamente, é possível administrar a execução desses jobs via banco de dados, mantendo a integridade de sua execução mesmo que o sistema esteja dentro de um cluster.

Para configurar um job em seu sistema basta fazer o seguinte:

import javax.inject.Inject;

import org.apache.deltaspike.scheduler.api.Scheduled;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;

import br.com.surittec.suriquartz.annotation.Audit;

@Audit // Indica que esse JOB deverá ter suas informações de execução auditadas
@DisallowConcurrentExecution // Bloqueia a execução concorrente do JOB (seja ela disparada manual ou automática)
@Scheduled(cronExpression = "0 28 7 21 10 ? 2015") // Cron do agendamento do JOB
public class DoStuffJob implements Job {
	
	@Inject
	private Logger logger;
	
	@Override
	public void execute(JobExecutionContext context) throws JobExecutionException {
		logger.info("Welcome Marty!");
	}

}

Uma importante dependência dessa biblioteca é o Suri-Quartz, core da integração do quartz com o auditoria personalizada. Ele escuta as operações do quartz e, quando necessário, grava informações de runtime da tarefa.

Clone this wiki locally