+++ /dev/null
-/*
- * Copyright 2006 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-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.
- *
- * @author Erik Brakkee
- */
-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;
-
- /**
- * Constructs the quartz interface.
- * @param aIntervalInSeconds Scheduling interval in seconds.
- * @throws SchedulerException
- */
- public QuartzCrawlerScheduler(int aIntervalInSeconds) throws SchedulerException {
- SchedulerFactory schedulerFactory = new StdSchedulerFactory();
- _scheduler = schedulerFactory.getScheduler();
- _intervalInSeconds = aIntervalInSeconds;
- }
-
- /**
- * Initializes the scheduler.
- * @throws SchedulerException
- */
- public void initialize() throws SchedulerException {
- _scheduler.start();
-
- 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(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
- */
- public void shutdown() throws SchedulerException {
- _scheduler.shutdown();
- }
-}