/* * Sistema de Ouvidoria: um canal através do qual os usuários * podem encaminhar suas reclamações, elogios e sugestões. * * Copyright (C) 2011 SERPRO * * Este programa é software livre; você pode redistribuí-lo e/ou * modificá-lo sob os termos da Licença Pública Geral GNU, conforme * publicada pela Free Software Foundation; tanto a versão 2 da * Licença como (a seu critério) qualquer versão mais nova. * * Este programa é distribuído na expectativa de ser útil, mas SEM * QUALQUER GARANTIA; sem mesmo a garantia implícita de * COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM * PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais * detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral GNU, * sob o título "LICENCA.txt", junto com esse programa. Se não, * acesse o Portal do Software Público Brasileiro no endereço * http://www.softwarepublico.gov.br/ ou escreva para a Fundação do * Software Livre (FSF) Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02111-1301, USA. * * Contatos através do seguinte endereço internet: * http://www.serpro.gov.br/sistemaouvidoria/ */ package br.gov.serpro.ouvidoria.agendador; import java.util.Date; import org.apache.log4j.Logger; import org.quartz.CronTrigger; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerFactory; import org.quartz.SchedulerMetaData; import org.quartz.impl.StdSchedulerFactory; /** * This Example will demonstrate all of the basics of scheduling capabilities of * Quartz using Cron Triggers. * * @author Bill Kratzer */ public class EnviarAlertaTrigger extends CronTrigger { private static final long serialVersionUID = 1L; private Logger log; public void run() { try { getLog().info("------- Iniciando -------------------"); // First we must get a reference to a scheduler SchedulerFactory sf = new StdSchedulerFactory(); Scheduler sched = sf.getScheduler(); getLog().info("------- Inicialização Completa --------"); getLog().info("------- Agendando Tarefas ----------------"); // jobs can be scheduled before sched.start() has been called // job 1 will run every 20 seconds JobDetail job = new JobDetail("EnviarAlertaJob", Scheduler.DEFAULT_GROUP, EnviarAlertaJob.class); CronTrigger trigger = new CronTrigger("EnviarAlertaTrigger", Scheduler.DEFAULT_GROUP, "EnviarAlertaJob", Scheduler.DEFAULT_GROUP, "0/10 0/5 * * * *"); sched.addJob(job, true); Date ft = sched.scheduleJob(trigger); getLog().info( job.getFullName() + " Foi programado para funcionar em: " + ft + " e repete baseado na expressão: " + trigger.getCronExpression()); getLog().info("------- Starting Scheduler ----------------"); // All of the jobs have been added to the scheduler, but none of the // jobs will run until the scheduler has been started sched.start(); getLog().info("------- Started Scheduler -----------------"); getLog().info("------- Waiting five minutes... ------------"); // wait five minutes to show jobs Thread.sleep(10L * 500L); // executing... getLog().info("------- Shutting Down ---------------------"); sched.shutdown(true); getLog().info("------- Shutdown Complete -----------------"); SchedulerMetaData metaData = sched.getMetaData(); getLog().info("Executed " + metaData.numJobsExecuted() + " jobs."); } catch (Exception e) { System.out.print("\n\nMensagem " + e.getMessage() + "\n\n"); e.printStackTrace(); } } protected Logger getLog() { if (this.log == null) { this.log = Logger.getLogger("AÇÃO : "); } return this.log; } }