segunda-feira, 18 de novembro de 2013

Criando scheduler com Quartz

import org.apache.log4j.Logger;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;

import br.com.gmm.scheduler.tasks.MMOnlineSchedulerTask;

public class SchedulerAgent extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 4867136433906642551L;
private static final Logger LOGGER = Logger.getLogger(SchedulerAgent.class.getName());
public static Scheduler scheduler;


@Override
public void init(ServletConfig config) throws ServletException {
LOGGER.info("iniciando servletAgente de scheduler");


try {
Scheduler scheduler = new StdSchedulerFactory().getDefaultScheduler();
       scheduler.start();
      JobDetail jobDetail = new JobDetail("MyJob", scheduler.DEFAULT_GROUP, MMOnlineSchedulerTask.class); //Define qual a classe que contém o metodo Job a ser executado
      CronTrigger trigger = new CronTrigger("MyTrigger", scheduler.DEFAULT_GROUP, "0 0 8 * * ? *");// determina o horário de cada execução: todos os dias às 8:00 horas
      scheduler.scheduleJob(jobDetail, trigger);
} catch (SchedulerException  e) {
LOGGER.warn(e);
} catch (ParseException e) {
LOGGER.warn(e);
}


}
}

package br.com.gmm.scheduler.tasks;

import java.util.Date;
import java.util.List;

import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

import br.com.gmm.scheduler.entity.mmonline.ViewMMOnline;
import br.com.gmm.scheduler.facade.FacadeFactory;
import br.com.gmm.scheduler.facade.MmonlineFacade;

public class MMOnlineSchedulerTask implements ISchedulerTask, Job{
private static Logger logger = Logger.getLogger(MMOnlineSchedulerTask.class);
public void run(){

//esse método é executado!!!
StatusNewsScheduleTask newsScheduleTask = new StatusNewsScheduleTask();
newsScheduleTask.run();
}
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
run();

}
}



Nenhum comentário:

Postar um comentário