From 8cb0084749c5334eec1ec7bae4abd91e2de5b4b1 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Mon, 17 Mar 2008 12:50:05 +0800 Subject: [PATCH] update for EOFM-20 --- ximple-jobcarrier/src/main/java/com/ximple/eofms/XQuartzJobCarrier.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 50 insertions(+), 0 deletions(-) diff --git a/ximple-jobcarrier/src/main/java/com/ximple/eofms/XQuartzJobCarrier.java b/ximple-jobcarrier/src/main/java/com/ximple/eofms/XQuartzJobCarrier.java index 7e71186..f2eef84 100644 --- a/ximple-jobcarrier/src/main/java/com/ximple/eofms/XQuartzJobCarrier.java +++ b/ximple-jobcarrier/src/main/java/com/ximple/eofms/XQuartzJobCarrier.java @@ -4,9 +4,14 @@ 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! @@ -25,6 +30,7 @@ public void startScheduler() { Scheduler scheduler = null; + boolean shutdown = false; try { @@ -39,7 +45,51 @@ { // 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); } } -- Gitblit v0.0.0-SNAPSHOT