X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=crawler%2Fkissweb%2Fsrc%2Forg%2Fwamblee%2Fcrawler%2Fkiss%2Fscheduling%2Fquartz%2FQuartzCrawlerScheduler.java;h=5fa7cf86c4714a4f1acc158b643a1b3d3f305859;hb=3c68ffbb4f2b908015301accc3f4473acc4619e2;hp=94201f37b23213d08c3b47b9a03379da456ae46a;hpb=26ae3728e2da2d86fe42994b9223fe44690dbfd0;p=utils diff --git a/crawler/kissweb/src/org/wamblee/crawler/kiss/scheduling/quartz/QuartzCrawlerScheduler.java b/crawler/kissweb/src/org/wamblee/crawler/kiss/scheduling/quartz/QuartzCrawlerScheduler.java index 94201f37..5fa7cf86 100644 --- a/crawler/kissweb/src/org/wamblee/crawler/kiss/scheduling/quartz/QuartzCrawlerScheduler.java +++ b/crawler/kissweb/src/org/wamblee/crawler/kiss/scheduling/quartz/QuartzCrawlerScheduler.java @@ -17,20 +17,33 @@ package org.wamblee.crawler.kiss.scheduling.quartz; import java.util.Date; +import java.util.List; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; +import org.quartz.SimpleTrigger; import org.quartz.Trigger; import org.quartz.TriggerUtils; import org.quartz.impl.StdSchedulerFactory; +import org.wamblee.crawler.kiss.scheduling.CrawlerScheduler; /** * Interface to the Quartz scheduler. */ -public class QuartzCrawlerScheduler { +public class QuartzCrawlerScheduler implements CrawlerScheduler { + /** + * + */ + private static final String TRIGGER_NAME = "interval"; + + /** + * + */ + private static final String JOB_NAME = "kisscrawler"; + private Scheduler _scheduler; private int _intervalInSeconds; @@ -53,15 +66,32 @@ public class QuartzCrawlerScheduler { public void initialize() throws SchedulerException { _scheduler.start(); - JobDetail jobDetail = new JobDetail("kisscrawler", null, CrawlerJob.class); + JobDetail jobDetail = new JobDetail(JOB_NAME, null, CrawlerJob.class); Trigger trigger = TriggerUtils.makeSecondlyTrigger(_intervalInSeconds); //trigger.setStartTime(TriggerUtils.getEvenHourDate(new Date())); trigger.setStartTime(new Date()); - trigger.setName("hourly"); + trigger.setName(TRIGGER_NAME); _scheduler.scheduleJob(jobDetail, trigger); } + /* (non-Javadoc) + * @see org.wamblee.crawler.kiss.scheduling.CrawlerScheduler#isCrawlerRunning() + */ + public boolean isCrawlerRunning() throws Exception { + List jobs = _scheduler.getCurrentlyExecutingJobs(); + return jobs.size() > 0; + } + + /* (non-Javadoc) + * @see org.wamblee.crawler.kiss.scheduling.CrawlerScheduler#scheduleNow() + */ + public void scheduleNow() throws Exception { + Trigger trigger = new SimpleTrigger("immediate", null); + trigger.setJobName(JOB_NAME); + _scheduler.scheduleJob(trigger); + } + /** * Shuts down the scheduler. * @throws SchedulerException