Quartz

Olá pessoal, hoje escreverei um mini exemplo, utilizando o framework Quartz, open source. Essa ferramenta permite você agendar(scheduler) um tipo de tarefas. Objetivo deste post não é ensinar instalar o framework, além do que o google existe vários tutoriais. Mas sim, mostrar um serviço que enviará email’s , em tempos em tempos. Concordo que não é um melhor exemplo para mostrar para vocês. Mas irá ajudar muitos a dar um ponta pé nos seus estudos.

Jar necessário para alguns jar

JavaMail API 1.4.5
Commons Email 1.X

Este serviço abaixo, envia um email.


package br.com.chikasawa.teste;

import org.apache.commons.mail.SimpleEmail;

public class EnviarEmail {
	
	public static void main(String[] args)
	{
		SimpleEmail email = new SimpleEmail();
		
		try {
			email.setDebug(true);
			email.setHostName("smtp.gmail.com");
			email.setAuthentication("seu_login", "sua_senha");
			email.setSSL(true);
			email.addTo("email_destinatario@gmail.com");
			email.setFrom("seu_email@gmail.com");
			email.setSubject("Testando");
			email.send();
			
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e.getMessage());
		}
		
	}

}

Essa Classe, cria-se um Job.

package br.com.chikasawa.teste;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class EmailJob implements Job {

	public EmailJob() {
	
	}
	
	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		// TODO Auto-generated method stub
		EnviarEmail teste = new EnviarEmail();
		teste.main(null);
		
	}		

}

Criamos uma trigger que em 40 segundos ele dispara um job, ou seja, em tempo em tempos o sistema envia um email para o destinatário.

package br.com.chikasawa.teste;

import org.quartz.JobDetail;  
import org.quartz.Scheduler;  
import org.quartz.SchedulerException;  
import org.quartz.Trigger;  
import org.quartz.impl.StdSchedulerFactory;  
import static org.quartz.TriggerBuilder.*;
import static org.quartz.JobBuilder.*;
import static org.quartz.SimpleScheduleBuilder.*;

public class ExecTarefa {

	public static void main(String[] args) throws SchedulerException
	{
		JobDetail job = newJob(EmailJob.class)
			    .withIdentity("myJob", "myGroup")
			    .storeDurably()
			    .requestRecovery()
			    .usingJobData("someKey", "someValue")
			    .build();
		
		Trigger trigger = newTrigger()
			      .withIdentity("myTrigger", "group1")
			      .startNow()
			      .withSchedule(simpleSchedule()
			          .withIntervalInSeconds(40)
			          .repeatForever())            
			      .build();
		
		Scheduler sched = new StdSchedulerFactory().getScheduler();  
		 // Tell quartz to schedule the job using our trigger
		  sched.scheduleJob(job, trigger);		  
		  sched.start(); 		
	}
}

Este exemplo demostrado aqui é para Java SE, em outro post, irei falar sobre Quartz para JEE. Eu aberto a sugestões e críticas.

Deixe um comentário

Blog no WordPress.com.

Acima ↑