package com.ximple.eofms; import java.util.Date; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; 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; import com.ximple.eofms.jobs.OracleConvertDgn2ShpJob; /** * Hello world! */ public class XQuartzJobCarrier { static Log logger = LogFactory.getLog(XQuartzJobCarrier.class); public static void main(String[] args) { XQuartzJobCarrier instance = new XQuartzJobCarrier(); instance.startScheduler(); } public void startScheduler() { Scheduler scheduler = null; boolean shutdown = false; try { // Get a Scheduler instance from the Factory scheduler = StdSchedulerFactory.getDefaultScheduler(); // Start the scheduler scheduler.start(); logger.info("Scheduler started at " + new Date()); } catch (SchedulerException ex) { // deal with any exceptions logger.error(ex); shutdown = true; } catch (Throwable throwable) { logger.error(throwable.getMessage(), throwable); shutdown = true; } if (shutdown) { try { scheduler.shutdown(); } catch (SchedulerException e) { logger.error(e.getMessage(), e); } } } /* * return an instance of the Scheduler from the factory */ public Scheduler createScheduler() throws SchedulerException { return StdSchedulerFactory.getDefaultScheduler(); } // Create and Schedule a ScanDirectoryJob with the Scheduler private void scheduleJob(Scheduler scheduler) throws SchedulerException { // Create a JobDetail for the Job JobDetail jobDetail = new JobDetail("ScanDirectory", Scheduler.DEFAULT_GROUP, OracleConvertDgn2ShpJob.class); // Configure the directory to scan jobDetail.getJobDataMap().put("SCAN_DIR", "c:\\quartz-book\\input"); // Create a trigger that fires every 10 seconds, forever Trigger trigger = TriggerUtils.makeSecondlyTrigger(10); trigger.setName("scanTrigger"); // Start the trigger firing from now trigger.setStartTime(new Date()); // Associate the trigger with the job in the scheduler scheduler.scheduleJob(jobDetail, trigger); } }