Quartz Part3

Antes de começar, não deixe de ver os post anterior Post1 e Post 2.

Agora irei falar sobre o framework Quartz para JEE, então irei criar um servlet, no qual será utilizado o Tomcat 6.0, mas poderia utilizar Jboss, Weblogic. Fique alerto para cada Servidor de Aplicação será necessário os respectivos libs. Lembrando estas libs vem junto com a lib do framework. Neste poste irei mostrar passo a passo, como construir um simples exemplo usando essa framework.

Pre-requisito:

Supondo que estes requisitos já esteja na sua máquina. Começando abra o eclipse e segue os passos.

Criar Projeto Novo, “Dynamic Web Project”. New->Other

Defina um nome para Projeto, Add : “ProjectQuartzWeb”, depois confere se o Tomcat foi marcado com o Servidor de Aplicação do Projeto.

Depois de criar o Projeto, vai até o pasta “src”, e cria o pacote “br.com.quartz”, no qual serão adicionados as classes do projetos.

Depois de criar os pacotes, crie os seguinte Serviços (O mesmo dos outros post). Adicione as seguintes classes abaixo:

Esse Classe “EnviarEmail”, nada mais que um serviço que envia um email.

package br.com.quartz;

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", "xxxxxxxxxx");
			email.setSSL(true);
			email.addTo("email_destinatario");
			email.setFrom("seu_email");
			email.setSubject("Testando");
			email.send();

		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e.getMessage());
		}

	}

}

Aqui a Classe foi criado um JOB

package br.com.quartz;

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);

	}

}

A Classe que chama o serviço JOB, e determina o temporizador.

package br.com.quartz;

import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;

public class ExecutarServico implements ServletContextListener{

	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		  System.out.println("THE APPLICATION STOPPED");

	}

	@Override
	public void contextInitialized(ServletContextEvent arg0) {

		try {

			JobDetail job = newJob(EmailJob.class)
				    .withIdentity("myJob", "myGroup")
				    .storeDurably()
				    .requestRecovery()
				    .usingJobData("someKey", "someValue")
				    .build();

			Trigger trigger = newTrigger()
				      .withIdentity("myTrigger", "group1")
				      .startNow()
				      .withSchedule(simpleSchedule()
				          .withIntervalInSeconds(10)
				          .repeatForever())
				      .build();

			Scheduler sched = new StdSchedulerFactory().getScheduler();

			sched.scheduleJob(job, trigger);

			  sched.start();
		} catch (SchedulerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 // Tell quartz to schedule the job using our trigger

    }

}

Aqui, tem que criar um arquivo “quartz.properties”, no próprio “src”.

org.quartz.scheduler.instanceName = MeuApp
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export = false
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 3
org.quartz.threadPool.threadPriority = 5
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

Duplo clik em web.xml, no Web XML Editor, procura “Listeners” -> Add -> “br.com.quartz.ExecutarServico”.

 ...

  br.com.quartz.ExecutarServico

 ...

Lembre-se que tem que adicionar os jar, na lib do projeto.

Caso você não consegui abaixar todas as libs, deixe um comentário com seu email e twitte este post, que irei encaminar os jar’s.

Um comentário em “Quartz Part3”

Adicione o seu

  1. Bom Dia.
    Parabéns pelos posts.
    Apesar de ajudarem muito ainda tenho dúvidas sobre como instalar o Quartz em ambientes que utilizam Maven.
    Você tem algum tutorial ou indica algum bem didático?
    Nas minhas tentativas sempre esbarro nas configurações do pom.xml e do web.xml.

    Abraço;

    Ramon

Deixe um comentário

Blog no WordPress.com.

Acima ↑