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);
|
}
|
|
}
|