package org.celllife.idart.integration.eKapa; import java.util.Date; import org.apache.log4j.Logger; import org.quartz.Job; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.Trigger; import org.quartz.TriggerUtils; import org.quartz.impl.StdSchedulerFactory; public class JobScheduler { private final Logger log = Logger.getLogger(JobScheduler.class.getName()); private Scheduler sched; public boolean schedule(String name, String groupName, Class<? extends Job> jobClass, int minuteInterval) { if (!initScheduler()){ return false; } log.info("Scheduling job: " + name); JobDetail jobDetail = new JobDetail(name, groupName, jobClass); //jobDetail. Trigger trigger = TriggerUtils.makeMinutelyTrigger(minuteInterval); trigger .setStartTime(TriggerUtils .getNextGivenMinuteDate(new Date(), 1)); trigger.setName("trigger-" + name); try { sched.scheduleJob(jobDetail, trigger); return true; } catch (SchedulerException e) { log.error("Exception scheduling job", e); return false; } } public boolean scheduleOnceOff(String name, String groupName, Class<? extends Job> jobClass) { if (!initScheduler()){ return false; } log.info("Scheduling job: " + name); JobDetail jobDetail = new JobDetail(name, groupName, jobClass); Trigger trigger = TriggerUtils.makeImmediateTrigger("trigger-" + name, 0, 0); trigger.setStartTime(new Date()); try { sched.scheduleJob(jobDetail, trigger); return true; } catch (SchedulerException e) { log.error("Exception scheduling job", e); return false; } } private boolean initScheduler() { if (sched == null) { try { sched = StdSchedulerFactory.getDefaultScheduler(); sched.start(); } catch (SchedulerException e) { log.error("Exception starting scheduler", e); return false; } } return true; } public void shutdown() { if (sched != null) { try { sched.shutdown(true); } catch (SchedulerException e) { log.error("Exception shutting down scheduler", e); } } } public boolean hasJob(String groupName, String jobName) { if (initScheduler()){ try { JobDetail jobDetail = sched.getJobDetail(jobName,groupName); return jobDetail != null; } catch (SchedulerException e) { return true; } } return true; } }