📄 stdscheduler.java
字号:
/* * Copyright James House (c) 2001-2004 * * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: 1. * Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. 2. Redistributions in * binary form must reproduce the above copyright notice, this list of * conditions and the following disclaimer in the documentation and/or other * materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */package org.quartz.impl;import java.util.Date;import java.util.List;import java.util.Set;import org.quartz.Calendar;import org.quartz.JobDetail;import org.quartz.JobListener;import org.quartz.Scheduler;import org.quartz.SchedulerContext;import org.quartz.SchedulerException;import org.quartz.SchedulerListener;import org.quartz.SchedulerMetaData;import org.quartz.Trigger;import org.quartz.TriggerListener;import org.quartz.UnableToInterruptJobException;import org.quartz.core.QuartzScheduler;import org.quartz.core.SchedulingContext;/** * <p> * An implementation of the <code>Scheduler</code> interface that directly * proxies all method calls to the equivalent call on a given <code>QuartzScheduler</code> * instance. * </p> * * @see org.quartz.Scheduler * @see org.quartz.core.QuartzScheduler * @see org.quartz.core.SchedulingContext * * @author James House */public class StdScheduler implements Scheduler { /* * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * Data members. * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ private QuartzScheduler sched; private SchedulingContext schedCtxt; /* * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * Constructors. * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /** * <p> * Construct a <code>StdScheduler</code> instance to proxy the given * <code>QuartzScheduler</code> instance, and with the given <code>SchedulingContext</code>. * </p> */ public StdScheduler(QuartzScheduler sched, SchedulingContext schedCtxt) { this.sched = sched; this.schedCtxt = schedCtxt; } /* * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * Interface. * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /** * <p> * Returns the name of the <code>Scheduler</code>. * </p> */ public String getSchedulerName() { return sched.getSchedulerName(); } /** * <p> * Returns the instance Id of the <code>Scheduler</code>. * </p> */ public String getSchedulerInstanceId() { return sched.getSchedulerInstanceId(); } public SchedulerMetaData getMetaData() { return new SchedulerMetaData(getSchedulerName(), getSchedulerInstanceId(), getClass(), false, sched .runningSince() != null, isPaused(), isShutdown(), sched.runningSince(), sched.numJobsExecuted(), sched .getJobStoreClass(), sched.supportsPersistence(), sched .getThreadPoolClass(), sched.getThreadPoolSize(), sched .getVersion()); } /** * <p> * Returns the <code>SchedulerContext</code> of the <code>Scheduler</code>. * </p> */ public SchedulerContext getContext() throws SchedulerException { return sched.getSchedulerContext(); } /////////////////////////////////////////////////////////////////////////// /// /// Schedululer State Management Methods /// /////////////////////////////////////////////////////////////////////////// /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>. * </p> */ public void start() throws SchedulerException { sched.start(); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>. * </p> */ public void pause() { sched.pause(); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>. * </p> */ public boolean isPaused() { return sched.isPaused(); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>. * </p> */ public void shutdown() { sched.shutdown(); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>. * </p> */ public void shutdown(boolean waitForJobsToComplete) { sched.shutdown(waitForJobsToComplete); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>. * </p> */ public boolean isShutdown() { return sched.isShutdown(); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>. * </p> */ public List getCurrentlyExecutingJobs() { return sched.getCurrentlyExecutingJobs(); } /////////////////////////////////////////////////////////////////////////// /// /// Scheduling-related Methods /// /////////////////////////////////////////////////////////////////////////// /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p> */ public Date scheduleJob(JobDetail jobDetail, Trigger trigger) throws SchedulerException { return sched.scheduleJob(schedCtxt, jobDetail, trigger); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p> */ public Date scheduleJob(Trigger trigger) throws SchedulerException { return sched.scheduleJob(schedCtxt, trigger); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p> */ public void addJob(JobDetail jobDetail, boolean replace) throws SchedulerException { sched.addJob(schedCtxt, jobDetail, replace); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p> */ public boolean deleteJob(String jobName, String groupName) throws SchedulerException { return sched.deleteJob(schedCtxt, jobName, groupName); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p> */ public boolean unscheduleJob(String triggerName, String groupName) throws SchedulerException { return sched.unscheduleJob(schedCtxt, triggerName, groupName); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p> */ public Date rescheduleJob(String triggerName, String groupName, Trigger newTrigger) throws SchedulerException { return sched.rescheduleJob(schedCtxt, triggerName, groupName, newTrigger); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p> */ public void triggerJob(String jobName, String groupName) throws SchedulerException { sched.triggerJob(schedCtxt, jobName, groupName); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p> */ public void triggerJobWithVolatileTrigger(String jobName, String groupName) throws SchedulerException { sched.triggerJobWithVolatileTrigger(schedCtxt, jobName, groupName); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p> */ public void pauseTrigger(String triggerName, String groupName) throws SchedulerException { sched.pauseTrigger(schedCtxt, triggerName, groupName); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p> */ public void pauseTriggerGroup(String groupName) throws SchedulerException { sched.pauseTriggerGroup(schedCtxt, groupName); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p> */ public void pauseJob(String jobName, String groupName) throws SchedulerException { sched.pauseJob(schedCtxt, jobName, groupName); } /** * @see org.quartz.Scheduler#getPausedTriggerGroups() */ public Set getPausedTriggerGroups() throws SchedulerException { return sched.getPausedTriggerGroups(schedCtxt); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p> */ public void pauseJobGroup(String groupName) throws SchedulerException { sched.pauseJobGroup(schedCtxt, groupName); } /** * <p> * Calls the equivalent method on the 'proxied' <code>QuartzScheduler</code>, * passing the <code>SchedulingContext</code> associated with this * instance. * </p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -