-
Notifications
You must be signed in to change notification settings - Fork 3
Scheduler
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.
Todas as tarefas que estiverem anotadas com @br.com.surittec.suriquartz.annotation.Audit deverão ter as seguintes informações sobre sua execução gravadas em banco:
- - Grupo do JOB;
- - Nome do JOB;
- - Timestamp de início da execução;
- - Timestamp de fim da execução.
onlyTemporaryTrigger para restringir a auditoria apenas às execuções feitas manualmente, fora do agendamento tradicional.
© Copyright 2014 SURITTEC