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