Interface Scheduler
-
- All Known Implementing Classes:
JBoss4RMIRemoteMBeanScheduler
,RemoteMBeanScheduler
,RemoteScheduler
,StdScheduler
public interface Scheduler
This is the main interface of a Quartz Scheduler.A
Scheduler
maintains a registry of
s andJobDetail
s. Once registered, theTrigger
Scheduler
is responsible for executingJob
s when their associatedTrigger
s fire (when their scheduled time arrives).Scheduler
instances are produced by a
. A scheduler that has already been created/initialized can be found and used through the same factory that produced it. After aSchedulerFactory
Scheduler
has been created, it is in "stand-by" mode, and must have itsstart()
method called before it will fire anyJob
s.Job
s are to be created by the 'client program', by defining a class that implements the
interface.Job
objects are then created (also by the client) to define a individual instances of theJobDetail
Job
.JobDetail
instances can then be registered with theScheduler
via thescheduleJob(JobDetail, Trigger)
oraddJob(JobDetail, boolean)
method.Trigger
s can then be defined to fire individualJob
instances based on given schedules.SimpleTrigger
s are most useful for one-time firings, or firing at an exact moment in time, with N repeats with a given delay between them.CronTrigger
s allow scheduling based on time of day, day of week, day of month, and month of year.Job
s andTrigger
s have a name and group associated with them, which should uniquely identify them within a single
. The 'group' feature may be useful for creating logical groupings or categorizations ofScheduler
Jobs
s andTriggers
s. If you don't have need for assigning a group to a givenJobs
ofTriggers
, then you can use theDEFAULT_GROUP
constant defined on this interface.Stored
Job
s can also be 'manually' triggered through the use of thetriggerJob(String jobName, String jobGroup)
function.Client programs may also be interested in the 'listener' interfaces that are available from Quartz. The
interface provides notifications ofJobListener
Job
executions. The
interface provides notifications ofTriggerListener
Trigger
firings. The
interface provides notifications ofSchedulerListener
Scheduler
events and errors. Listeners can be associated with local schedulers through theListenerManager
interface.The setup/configuration of a
Scheduler
instance is very customizable. Please consult the documentation distributed with Quartz.- Author:
- James House, Sharada Jambula
- See Also:
Job
,JobDetail
,JobBuilder
,Trigger
,TriggerBuilder
,JobListener
,TriggerListener
,SchedulerListener
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DEFAULT_FAIL_OVER_GROUP
A constantTrigger
group name used internally by the scheduler - clients should not use the value of this constant ("FAILED_OVER_JOBS") for the name of aTrigger
's group.static java.lang.String
DEFAULT_GROUP
A (possibly) useful constant that can be used for specifying the group thatJob
andTrigger
instances belong to.static java.lang.String
DEFAULT_RECOVERY_GROUP
A constantTrigger
group name used internally by the scheduler - clients should not use the value of this constant ("RECOVERING_JOBS") for the name of aTrigger
's group.static java.lang.String
FAILED_JOB_ORIGINAL_TRIGGER_FIRETIME_IN_MILLISECONDS
A constantJobDataMap
key that can be used to retrieve the fire time of the originalTrigger
from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance.static java.lang.String
FAILED_JOB_ORIGINAL_TRIGGER_GROUP
A constantJobDataMap
key that can be used to retrieve the group of the originalTrigger
from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance.static java.lang.String
FAILED_JOB_ORIGINAL_TRIGGER_NAME
A constantJobDataMap
key that can be used to retrieve the name of the originalTrigger
from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance.static java.lang.String
FAILED_JOB_ORIGINAL_TRIGGER_SCHEDULED_FIRETIME_IN_MILLISECONDS
A constantJobDataMap
key that can be used to retrieve the scheduled fire time of the originalTrigger
from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addCalendar(java.lang.String calName, Calendar calendar, boolean replace, boolean updateTriggers)
Add (register) the givenCalendar
to the Scheduler.void
addJob(JobDetail jobDetail, boolean replace)
Add the givenJob
to the Scheduler - with no associatedTrigger
.void
addJob(JobDetail jobDetail, boolean replace, boolean storeNonDurableWhileAwaitingScheduling)
Add the givenJob
to the Scheduler - with no associatedTrigger
.boolean
checkExists(JobKey jobKey)
Determine whether aJob
with the given identifier already exists within the scheduler.boolean
checkExists(TriggerKey triggerKey)
Determine whether aTrigger
with the given identifier already exists within the scheduler.void
clear()
boolean
deleteCalendar(java.lang.String calName)
Delete the identifiedCalendar
from the Scheduler.boolean
deleteJob(JobKey jobKey)
Delete the identifiedJob
from the Scheduler - and any associatedTrigger
s.boolean
deleteJobs(java.util.List<JobKey> jobKeys)
Delete the identifiedJob
s from the Scheduler - and any associatedTrigger
s.Calendar
getCalendar(java.lang.String calName)
Get the
instance with the given name.Calendar
java.util.List<java.lang.String>
getCalendarNames()
Get the names of all registered
.Calendar
sSchedulerContext
getContext()
Returns theSchedulerContext
of theScheduler
.java.util.List<JobExecutionContext>
getCurrentlyExecutingJobs()
Return a list ofJobExecutionContext
objects that represent all currently executing Jobs in this Scheduler instance.JobDetail
getJobDetail(JobKey jobKey)
Get the
for theJobDetail
Job
instance with the given key.java.util.List<java.lang.String>
getJobGroupNames()
Get the names of all known
groups.JobDetail
java.util.Set<JobKey>
getJobKeys(GroupMatcher<JobKey> matcher)
Get the keys of all the
in the matching groups.JobDetail
sListenerManager
getListenerManager()
Get a reference to the scheduler'sListenerManager
, through which listeners may be registered.SchedulerMetaData
getMetaData()
Get aSchedulerMetaData
object describing the settings and capabilities of the scheduler instance.java.util.Set<java.lang.String>
getPausedTriggerGroups()
Get the names of all
groups that are paused.Trigger
java.lang.String
getSchedulerInstanceId()
Returns the instance Id of theScheduler
.java.lang.String
getSchedulerName()
Returns the name of theScheduler
.Trigger
getTrigger(TriggerKey triggerKey)
Get the
instance with the given key.Trigger
java.util.List<java.lang.String>
getTriggerGroupNames()
Get the names of all known
groups.Trigger
java.util.Set<TriggerKey>
getTriggerKeys(GroupMatcher<TriggerKey> matcher)
Get the names of all the
in the given group.Trigger
sjava.util.List<? extends Trigger>
getTriggersOfJob(JobKey jobKey)
Trigger.TriggerState
getTriggerState(TriggerKey triggerKey)
Get the current state of the identified
.Trigger
boolean
interrupt(java.lang.String fireInstanceId)
Request the interruption, within this Scheduler instance, of the identified executingJob
instance, which must be an implementor of theInterruptableJob
interface.boolean
interrupt(JobKey jobKey)
Request the interruption, within this Scheduler instance, of all currently executing instances of the identifiedJob
, which must be an implementor of theInterruptableJob
interface.boolean
isInStandbyMode()
Reports whether theScheduler
is in stand-by mode.boolean
isShutdown()
Reports whether theScheduler
has been shutdown.boolean
isStarted()
Whether the scheduler has been started.void
pauseAll()
Pause all triggers - similar to callingpauseTriggerGroup(group)
on every group, however, after using this methodresumeAll()
must be called to clear the scheduler's state of 'remembering' that all new triggers will be paused as they are added.void
pauseJob(JobKey jobKey)
Pause the
with the given key - by pausing all of its currentJobDetail
Trigger
s.void
pauseJobs(GroupMatcher<JobKey> matcher)
Pause all of the
in the matching groups - by pausing all of theirJobDetail
sTrigger
s.void
pauseTrigger(TriggerKey triggerKey)
Pause the
with the given key.Trigger
void
pauseTriggers(GroupMatcher<TriggerKey> matcher)
Pause all of the
in the groups matching.Trigger
sjava.util.Date
rescheduleJob(TriggerKey triggerKey, Trigger newTrigger)
Remove (delete) the
with the given key, and store the new given one - which must be associated with the same job (the new trigger must have the job name and group specified) - however, the new trigger need not have the same name as the old trigger.Trigger
void
resetTriggerFromErrorState(TriggerKey triggerKey)
Reset the current state of the identified
fromTrigger
Trigger.TriggerState.ERROR
toTrigger.TriggerState.NORMAL
orTrigger.TriggerState.PAUSED
as appropriate.void
resumeAll()
Resume (un-pause) all triggers - similar to callingresumeTriggerGroup(group)
on every group.void
resumeJob(JobKey jobKey)
Resume (un-pause) the
with the given key.JobDetail
void
resumeJobs(GroupMatcher<JobKey> matcher)
Resume (un-pause) all of the
in matching groups.JobDetail
svoid
resumeTrigger(TriggerKey triggerKey)
Resume (un-pause) the
with the given key.Trigger
void
resumeTriggers(GroupMatcher<TriggerKey> matcher)
Resume (un-pause) all of the
in matching groups.Trigger
svoid
scheduleJob(JobDetail jobDetail, java.util.Set<? extends Trigger> triggersForJob, boolean replace)
Schedule the given job with the related set of triggers.java.util.Date
scheduleJob(JobDetail jobDetail, Trigger trigger)
java.util.Date
scheduleJob(Trigger trigger)
void
scheduleJobs(java.util.Map<JobDetail,java.util.Set<? extends Trigger>> triggersAndJobs, boolean replace)
Schedule all of the given jobs with the related set of triggers.void
setJobFactory(JobFactory factory)
Set theJobFactory
that will be responsible for producing instances ofJob
classes.void
shutdown()
Halts theScheduler
's firing of
, and cleans up all resources associated with the Scheduler.Trigger
svoid
shutdown(boolean waitForJobsToComplete)
Halts theScheduler
's firing of
, and cleans up all resources associated with the Scheduler.Trigger
svoid
standby()
Temporarily halts theScheduler
's firing of
.Trigger
svoid
start()
Starts theScheduler
's threads that fire
.Trigger
svoid
startDelayed(int seconds)
Calls {#start()} after the indicated number of seconds.void
triggerJob(JobKey jobKey)
Trigger the identified
(execute it now).JobDetail
void
triggerJob(JobKey jobKey, JobDataMap data)
Trigger the identified
(execute it now).JobDetail
boolean
unscheduleJob(TriggerKey triggerKey)
Remove the indicated
from the scheduler.Trigger
boolean
unscheduleJobs(java.util.List<TriggerKey> triggerKeys)
Remove all of the indicated
s from the scheduler.Trigger
-
-
-
Field Detail
-
DEFAULT_GROUP
static final java.lang.String DEFAULT_GROUP
A (possibly) useful constant that can be used for specifying the group thatJob
andTrigger
instances belong to.- See Also:
- Constant Field Values
-
DEFAULT_RECOVERY_GROUP
static final java.lang.String DEFAULT_RECOVERY_GROUP
A constantTrigger
group name used internally by the scheduler - clients should not use the value of this constant ("RECOVERING_JOBS") for the name of aTrigger
's group.
-
DEFAULT_FAIL_OVER_GROUP
static final java.lang.String DEFAULT_FAIL_OVER_GROUP
A constantTrigger
group name used internally by the scheduler - clients should not use the value of this constant ("FAILED_OVER_JOBS") for the name of aTrigger
's group.
-
FAILED_JOB_ORIGINAL_TRIGGER_NAME
static final java.lang.String FAILED_JOB_ORIGINAL_TRIGGER_NAME
A constantJobDataMap
key that can be used to retrieve the name of the originalTrigger
from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance.
-
FAILED_JOB_ORIGINAL_TRIGGER_GROUP
static final java.lang.String FAILED_JOB_ORIGINAL_TRIGGER_GROUP
A constantJobDataMap
key that can be used to retrieve the group of the originalTrigger
from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance.
-
FAILED_JOB_ORIGINAL_TRIGGER_FIRETIME_IN_MILLISECONDS
static final java.lang.String FAILED_JOB_ORIGINAL_TRIGGER_FIRETIME_IN_MILLISECONDS
A constantJobDataMap
key that can be used to retrieve the fire time of the originalTrigger
from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance.Note that this is the time the original firing actually occurred, which may be different from the scheduled fire time - as a trigger doesn't always fire exactly on time.
-
FAILED_JOB_ORIGINAL_TRIGGER_SCHEDULED_FIRETIME_IN_MILLISECONDS
static final java.lang.String FAILED_JOB_ORIGINAL_TRIGGER_SCHEDULED_FIRETIME_IN_MILLISECONDS
A constantJobDataMap
key that can be used to retrieve the scheduled fire time of the originalTrigger
from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance.Note that this is the time the original firing was scheduled for, which may be different from the actual firing time - as a trigger doesn't always fire exactly on time.
-
-
Method Detail
-
getSchedulerName
java.lang.String getSchedulerName() throws SchedulerException
Returns the name of theScheduler
.- Throws:
SchedulerException
-
getSchedulerInstanceId
java.lang.String getSchedulerInstanceId() throws SchedulerException
Returns the instance Id of theScheduler
.- Throws:
SchedulerException
-
getContext
SchedulerContext getContext() throws SchedulerException
Returns theSchedulerContext
of theScheduler
.- Throws:
SchedulerException
-
start
void start() throws SchedulerException
Starts theScheduler
's threads that fire
. When a scheduler is first created it is in "stand-by" mode, and will not fire triggers. The scheduler can also be put into stand-by mode by calling theTrigger
sstandby()
method.The misfire/recovery process will be started, if it is the initial call to this method on this scheduler instance.
- Throws:
SchedulerException
- ifshutdown()
has been called, or there is an error within theScheduler
.- See Also:
startDelayed(int)
,standby()
,shutdown()
-
startDelayed
void startDelayed(int seconds) throws SchedulerException
Calls {#start()} after the indicated number of seconds. (This call does not block). This can be useful within applications that have initializers that create the scheduler immediately, before the resources needed by the executing jobs have been fully initialized.- Throws:
SchedulerException
- ifshutdown()
has been called, or there is an error within theScheduler
.- See Also:
start()
,standby()
,shutdown()
-
isStarted
boolean isStarted() throws SchedulerException
Whether the scheduler has been started.Note: This only reflects whether
has ever been called on this Scheduler, so it will returnstart()
true
even if theScheduler
is currently in standby mode or has been since shutdown.- Throws:
SchedulerException
- See Also:
start()
,isShutdown()
,isInStandbyMode()
-
standby
void standby() throws SchedulerException
Temporarily halts theScheduler
's firing of
.Trigger
sWhen
start()
is called (to bring the scheduler out of stand-by mode), trigger misfire instructions will NOT be applied during the execution of thestart()
method - any misfires will be detected immediately afterward (by theJobStore
's normal process).The scheduler is not destroyed, and can be re-started at any time.
- Throws:
SchedulerException
- See Also:
start()
,pauseAll()
-
isInStandbyMode
boolean isInStandbyMode() throws SchedulerException
Reports whether theScheduler
is in stand-by mode.- Throws:
SchedulerException
- See Also:
standby()
,start()
-
shutdown
void shutdown() throws SchedulerException
Halts theScheduler
's firing of
, and cleans up all resources associated with the Scheduler. Equivalent toTrigger
sshutdown(false)
.The scheduler cannot be re-started.
- Throws:
SchedulerException
- See Also:
shutdown(boolean)
-
shutdown
void shutdown(boolean waitForJobsToComplete) throws SchedulerException
Halts theScheduler
's firing of
, and cleans up all resources associated with the Scheduler.Trigger
sThe scheduler cannot be re-started.
- Parameters:
waitForJobsToComplete
- iftrue
the scheduler will not allow this method to return until all currently executing jobs have completed.- Throws:
SchedulerException
- See Also:
shutdown()
-
isShutdown
boolean isShutdown() throws SchedulerException
Reports whether theScheduler
has been shutdown.- Throws:
SchedulerException
-
getMetaData
SchedulerMetaData getMetaData() throws SchedulerException
Get aSchedulerMetaData
object describing the settings and capabilities of the scheduler instance.Note that the data returned is an 'instantaneous' snap-shot, and that as soon as it's returned, the meta data values may be different.
- Throws:
SchedulerException
-
getCurrentlyExecutingJobs
java.util.List<JobExecutionContext> getCurrentlyExecutingJobs() throws SchedulerException
Return a list ofJobExecutionContext
objects that represent all currently executing Jobs in this Scheduler instance.This method is not cluster aware. That is, it will only return Jobs currently executing in this Scheduler instance, not across the entire cluster.
Note that the list returned is an 'instantaneous' snap-shot, and that as soon as it's returned, the true list of executing jobs may be different. Also please read the doc associated with
JobExecutionContext
- especially if you're using RMI.- Throws:
SchedulerException
- See Also:
JobExecutionContext
-
setJobFactory
void setJobFactory(JobFactory factory) throws SchedulerException
Set theJobFactory
that will be responsible for producing instances ofJob
classes.JobFactories may be of use to those wishing to have their application produce
Job
instances via some special mechanism, such as to give the opportunity for dependency injection.- Throws:
SchedulerException
- See Also:
JobFactory
-
getListenerManager
ListenerManager getListenerManager() throws SchedulerException
Get a reference to the scheduler'sListenerManager
, through which listeners may be registered.- Returns:
- the scheduler's
ListenerManager
- Throws:
SchedulerException
- if the scheduler is not local- See Also:
ListenerManager
,JobListener
,TriggerListener
,SchedulerListener
-
scheduleJob
java.util.Date scheduleJob(JobDetail jobDetail, Trigger trigger) throws SchedulerException
Add the given
to the Scheduler, and associate the givenJobDetail
with it.Trigger
If the given Trigger does not reference any
Job
, then it will be set to reference the Job passed with it into this method.- Throws:
SchedulerException
- if the Job or Trigger cannot be added to the Scheduler, or there is an internal Scheduler error.
-
scheduleJob
java.util.Date scheduleJob(Trigger trigger) throws SchedulerException
- Throws:
SchedulerException
- if the indicated Job does not exist, or the Trigger cannot be added to the Scheduler, or there is an internal Scheduler error.
-
scheduleJobs
void scheduleJobs(java.util.Map<JobDetail,java.util.Set<? extends Trigger>> triggersAndJobs, boolean replace) throws SchedulerException
Schedule all of the given jobs with the related set of triggers.If any of the given jobs or triggers already exist (or more specifically, if the keys are not unique) and the replace parameter is not set to true then an exception will be thrown.
- Throws:
ObjectAlreadyExistsException
- if the job/trigger keys are not unique and the replace flag is not set to true.SchedulerException
-
scheduleJob
void scheduleJob(JobDetail jobDetail, java.util.Set<? extends Trigger> triggersForJob, boolean replace) throws SchedulerException
Schedule the given job with the related set of triggers.If any of the given job or triggers already exist (or more specifically, if the keys are not unique) and the replace parameter is not set to true then an exception will be thrown.
- Throws:
ObjectAlreadyExistsException
- if the job/trigger keys are not unique and the replace flag is not set to true.SchedulerException
-
unscheduleJob
boolean unscheduleJob(TriggerKey triggerKey) throws SchedulerException
Remove the indicated
from the scheduler.Trigger
If the related job does not have any other triggers, and the job is not durable, then the job will also be deleted.
- Throws:
SchedulerException
-
unscheduleJobs
boolean unscheduleJobs(java.util.List<TriggerKey> triggerKeys) throws SchedulerException
Remove all of the indicated
s from the scheduler.Trigger
If the related job does not have any other triggers, and the job is not durable, then the job will also be deleted.
Note that while this bulk operation is likely more efficient than invoking
unscheduleJob(TriggerKey triggerKey)
several times, it may have the adverse affect of holding data locks for a single long duration of time (rather than lots of small durations of time).- Throws:
SchedulerException
-
rescheduleJob
java.util.Date rescheduleJob(TriggerKey triggerKey, Trigger newTrigger) throws SchedulerException
Remove (delete) the
with the given key, and store the new given one - which must be associated with the same job (the new trigger must have the job name and group specified) - however, the new trigger need not have the same name as the old trigger.Trigger
- Parameters:
triggerKey
- identity of the trigger to replacenewTrigger
- The newTrigger
to be stored.- Returns:
null
if aTrigger
with the given name and group was not found and removed from the store (and the new trigger is therefore not stored), otherwise the first fire time of the newly scheduled trigger is returned.- Throws:
SchedulerException
-
addJob
void addJob(JobDetail jobDetail, boolean replace) throws SchedulerException
Add the givenJob
to the Scheduler - with no associatedTrigger
. TheJob
will be 'dormant' until it is scheduled with aTrigger
, orScheduler.triggerJob()
is called for it.The
Job
must by definition be 'durable', if it is not, SchedulerException will be thrown.- Throws:
SchedulerException
- if there is an internal Scheduler error, or if the Job is not durable, or a Job with the same name already exists, andreplace
isfalse
.- See Also:
addJob(JobDetail, boolean, boolean)
-
addJob
void addJob(JobDetail jobDetail, boolean replace, boolean storeNonDurableWhileAwaitingScheduling) throws SchedulerException
Add the givenJob
to the Scheduler - with no associatedTrigger
. TheJob
will be 'dormant' until it is scheduled with aTrigger
, orScheduler.triggerJob()
is called for it.With the
storeNonDurableWhileAwaitingScheduling
parameter set totrue
, a non-durable job can be stored. Once it is scheduled, it will resume normal non-durable behavior (i.e. be deleted once there are no remaining associated triggers).- Throws:
SchedulerException
- if there is an internal Scheduler error, or if the Job is not durable, or a Job with the same name already exists, andreplace
isfalse
.
-
deleteJob
boolean deleteJob(JobKey jobKey) throws SchedulerException
Delete the identifiedJob
from the Scheduler - and any associatedTrigger
s.- Returns:
- true if the Job was found and deleted.
- Throws:
SchedulerException
- if there is an internal Scheduler error.
-
deleteJobs
boolean deleteJobs(java.util.List<JobKey> jobKeys) throws SchedulerException
Delete the identifiedJob
s from the Scheduler - and any associatedTrigger
s.Note that while this bulk operation is likely more efficient than invoking
deleteJob(JobKey jobKey)
several times, it may have the adverse affect of holding data locks for a single long duration of time (rather than lots of small durations of time).- Returns:
- true if all of the Jobs were found and deleted, false if one or more were not deleted.
- Throws:
SchedulerException
- if there is an internal Scheduler error.
-
triggerJob
void triggerJob(JobKey jobKey) throws SchedulerException
Trigger the identified
(execute it now).JobDetail
- Throws:
SchedulerException
-
triggerJob
void triggerJob(JobKey jobKey, JobDataMap data) throws SchedulerException
Trigger the identified
(execute it now).JobDetail
- Parameters:
data
- the (possiblynull
) JobDataMap to be associated with the trigger that fires the job immediately.- Throws:
SchedulerException
-
pauseJob
void pauseJob(JobKey jobKey) throws SchedulerException
Pause the
with the given key - by pausing all of its currentJobDetail
Trigger
s.- Throws:
SchedulerException
- See Also:
resumeJob(JobKey)
-
pauseJobs
void pauseJobs(GroupMatcher<JobKey> matcher) throws SchedulerException
Pause all of the
in the matching groups - by pausing all of theirJobDetail
sTrigger
s.The Scheduler will "remember" the groups paused, and impose the pause on any new jobs that are added to any of those groups until it is resumed.
NOTE: There is a limitation that only exactly matched groups can be remembered as paused. For example, if there are pre-existing job in groups "aaa" and "bbb" and a matcher is given to pause groups that start with "a" then the group "aaa" will be remembered as paused and any subsequently added jobs in group "aaa" will be paused, however if a job is added to group "axx" it will not be paused, as "axx" wasn't known at the time the "group starts with a" matcher was applied. HOWEVER, if there are pre-existing groups "aaa" and "bbb" and a matcher is given to pause the group "axx" (with a group equals matcher) then no jobs will be paused, but it will be remembered that group "axx" is paused and later when a job is added in that group, it will become paused.
- Parameters:
matcher
- The matcher to evaluate against know groups- Throws:
SchedulerException
- On error- See Also:
resumeJobs(org.quartz.impl.matchers.GroupMatcher)
-
pauseTrigger
void pauseTrigger(TriggerKey triggerKey) throws SchedulerException
Pause the
with the given key.Trigger
- Throws:
SchedulerException
- See Also:
resumeTrigger(TriggerKey)
-
pauseTriggers
void pauseTriggers(GroupMatcher<TriggerKey> matcher) throws SchedulerException
Pause all of the
in the groups matching.Trigger
sThe Scheduler will "remember" all the groups paused, and impose the pause on any new triggers that are added to any of those groups until it is resumed.
NOTE: There is a limitation that only exactly matched groups can be remembered as paused. For example, if there are pre-existing triggers in groups "aaa" and "bbb" and a matcher is given to pause groups that start with "a" then the group "aaa" will be remembered as paused and any subsequently added triggers in that group be paused, however if a trigger is added to group "axx" it will not be paused, as "axx" wasn't known at the time the "group starts with a" matcher was applied. HOWEVER, if there are pre-existing groups "aaa" and "bbb" and a matcher is given to pause the group "axx" (with a group equals matcher) then no triggers will be paused, but it will be remembered that group "axx" is paused and later when a trigger is added in that group, it will become paused.
- Parameters:
matcher
- The matcher to evaluate against know groups- Throws:
SchedulerException
- See Also:
resumeTriggers(org.quartz.impl.matchers.GroupMatcher)
-
resumeJob
void resumeJob(JobKey jobKey) throws SchedulerException
Resume (un-pause) the
with the given key.JobDetail
If any of the
Job
'sTrigger
s missed one or more fire-times, then theTrigger
's misfire instruction will be applied.- Throws:
SchedulerException
- See Also:
pauseJob(JobKey)
-
resumeJobs
void resumeJobs(GroupMatcher<JobKey> matcher) throws SchedulerException
Resume (un-pause) all of the
in matching groups.JobDetail
sIf any of the
Job
s hadTrigger
s that missed one or more fire-times, then theTrigger
's misfire instruction will be applied.- Parameters:
matcher
- The matcher to evaluate against known paused groups- Throws:
SchedulerException
- On error- See Also:
pauseJobs(GroupMatcher)
-
resumeTrigger
void resumeTrigger(TriggerKey triggerKey) throws SchedulerException
Resume (un-pause) the
with the given key.Trigger
If the
Trigger
missed one or more fire-times, then theTrigger
's misfire instruction will be applied.- Throws:
SchedulerException
- See Also:
pauseTrigger(TriggerKey)
-
resumeTriggers
void resumeTriggers(GroupMatcher<TriggerKey> matcher) throws SchedulerException
Resume (un-pause) all of the
in matching groups.Trigger
sIf any
Trigger
missed one or more fire-times, then theTrigger
's misfire instruction will be applied.- Parameters:
matcher
- The matcher to evaluate against know paused groups- Throws:
SchedulerException
- On error- See Also:
pauseTriggers(org.quartz.impl.matchers.GroupMatcher)
-
pauseAll
void pauseAll() throws SchedulerException
Pause all triggers - similar to callingpauseTriggerGroup(group)
on every group, however, after using this methodresumeAll()
must be called to clear the scheduler's state of 'remembering' that all new triggers will be paused as they are added.When
resumeAll()
is called (to un-pause), trigger misfire instructions WILL be applied.- Throws:
SchedulerException
- See Also:
resumeAll()
,pauseTriggers(org.quartz.impl.matchers.GroupMatcher)
,standby()
-
resumeAll
void resumeAll() throws SchedulerException
Resume (un-pause) all triggers - similar to callingresumeTriggerGroup(group)
on every group.If any
Trigger
missed one or more fire-times, then theTrigger
's misfire instruction will be applied.- Throws:
SchedulerException
- See Also:
pauseAll()
-
getJobGroupNames
java.util.List<java.lang.String> getJobGroupNames() throws SchedulerException
Get the names of all known
groups.JobDetail
- Throws:
SchedulerException
-
getJobKeys
java.util.Set<JobKey> getJobKeys(GroupMatcher<JobKey> matcher) throws SchedulerException
Get the keys of all the
in the matching groups.JobDetail
s- Parameters:
matcher
- Matcher to evaluate against known groups- Returns:
- Set of all keys matching
- Throws:
SchedulerException
- On error
-
getTriggersOfJob
java.util.List<? extends Trigger> getTriggersOfJob(JobKey jobKey) throws SchedulerException
Get all
s that are associated with the identifiedTrigger
.JobDetail
The returned Trigger objects will be snap-shots of the actual stored triggers. If you wish to modify a trigger, you must re-store the trigger afterward (e.g. see
rescheduleJob(TriggerKey, Trigger)
).- Throws:
SchedulerException
-
getTriggerGroupNames
java.util.List<java.lang.String> getTriggerGroupNames() throws SchedulerException
Get the names of all known
groups.Trigger
- Throws:
SchedulerException
-
getTriggerKeys
java.util.Set<TriggerKey> getTriggerKeys(GroupMatcher<TriggerKey> matcher) throws SchedulerException
Get the names of all the
in the given group.Trigger
s- Parameters:
matcher
- Matcher to evaluate against known groups- Returns:
- List of all keys matching
- Throws:
SchedulerException
- On error
-
getPausedTriggerGroups
java.util.Set<java.lang.String> getPausedTriggerGroups() throws SchedulerException
Get the names of all
groups that are paused.Trigger
- Throws:
SchedulerException
-
getJobDetail
JobDetail getJobDetail(JobKey jobKey) throws SchedulerException
Get the
for theJobDetail
Job
instance with the given key.The returned JobDetail object will be a snap-shot of the actual stored JobDetail. If you wish to modify the JobDetail, you must re-store the JobDetail afterward (e.g. see
addJob(JobDetail, boolean)
).- Throws:
SchedulerException
-
getTrigger
Trigger getTrigger(TriggerKey triggerKey) throws SchedulerException
Get the
instance with the given key.Trigger
The returned Trigger object will be a snap-shot of the actual stored trigger. If you wish to modify the trigger, you must re-store the trigger afterward (e.g. see
rescheduleJob(TriggerKey, Trigger)
).- Throws:
SchedulerException
-
getTriggerState
Trigger.TriggerState getTriggerState(TriggerKey triggerKey) throws SchedulerException
Get the current state of the identified
.Trigger
- Throws:
SchedulerException
- See Also:
Trigger.TriggerState
-
resetTriggerFromErrorState
void resetTriggerFromErrorState(TriggerKey triggerKey) throws SchedulerException
Reset the current state of the identified
fromTrigger
Trigger.TriggerState.ERROR
toTrigger.TriggerState.NORMAL
orTrigger.TriggerState.PAUSED
as appropriate.Only affects triggers that are in ERROR state - if identified trigger is not in that state then the result is a no-op.
The result will be the trigger returning to the normal, waiting to be fired state, unless the trigger's group has been paused, in which case it will go into the PAUSED state.
- Throws:
SchedulerException
- See Also:
Trigger.TriggerState
-
addCalendar
void addCalendar(java.lang.String calName, Calendar calendar, boolean replace, boolean updateTriggers) throws SchedulerException
Add (register) the givenCalendar
to the Scheduler.- Parameters:
updateTriggers
- whether or not to update existing triggers that referenced the already existing calendar so that they are 'correct' based on the new trigger.- Throws:
SchedulerException
- if there is an internal Scheduler error, or a Calendar with the same name already exists, andreplace
isfalse
.
-
deleteCalendar
boolean deleteCalendar(java.lang.String calName) throws SchedulerException
Delete the identifiedCalendar
from the Scheduler.If removal of the
Calendar
would result inTrigger
s pointing to non-existent calendars, then aSchedulerException
will be thrown.- Returns:
- true if the Calendar was found and deleted.
- Throws:
SchedulerException
- if there is an internal Scheduler error, or one or more triggers reference the calendar
-
getCalendar
Calendar getCalendar(java.lang.String calName) throws SchedulerException
Get the
instance with the given name.Calendar
- Throws:
SchedulerException
-
getCalendarNames
java.util.List<java.lang.String> getCalendarNames() throws SchedulerException
Get the names of all registered
.Calendar
s- Throws:
SchedulerException
-
interrupt
boolean interrupt(JobKey jobKey) throws UnableToInterruptJobException
Request the interruption, within this Scheduler instance, of all currently executing instances of the identifiedJob
, which must be an implementor of theInterruptableJob
interface.If more than one instance of the identified job is currently executing, the
InterruptableJob#interrupt()
method will be called on each instance. However, there is a limitation that in the case thatinterrupt()
on one instances throws an exception, all remaining instances (that have not yet been interrupted) will not have theirinterrupt()
method called.This method is not cluster aware. That is, it will only interrupt instances of the identified InterruptableJob currently executing in this Scheduler instance, not across the entire cluster.
- Returns:
- true if at least one instance of the identified job was found and interrupted.
- Throws:
UnableToInterruptJobException
- if the job does not implementInterruptableJob
, or there is an exception while interrupting the job.- See Also:
InterruptableJob.interrupt()
,getCurrentlyExecutingJobs()
,interrupt(String)
-
interrupt
boolean interrupt(java.lang.String fireInstanceId) throws UnableToInterruptJobException
Request the interruption, within this Scheduler instance, of the identified executingJob
instance, which must be an implementor of theInterruptableJob
interface.This method is not cluster aware. That is, it will only interrupt instances of the identified InterruptableJob currently executing in this Scheduler instance, not across the entire cluster.
- Parameters:
fireInstanceId
- the unique identifier of the job instance to be interrupted (seeJobExecutionContext.getFireInstanceId()
- Returns:
- true if the identified job instance was found and interrupted.
- Throws:
UnableToInterruptJobException
- if the job does not implementInterruptableJob
, or there is an exception while interrupting the job.- See Also:
InterruptableJob.interrupt()
,getCurrentlyExecutingJobs()
,JobExecutionContext.getFireInstanceId()
,interrupt(JobKey)
-
checkExists
boolean checkExists(JobKey jobKey) throws SchedulerException
Determine whether aJob
with the given identifier already exists within the scheduler.- Parameters:
jobKey
- the identifier to check for- Returns:
- true if a Job exists with the given identifier
- Throws:
SchedulerException
-
checkExists
boolean checkExists(TriggerKey triggerKey) throws SchedulerException
Determine whether aTrigger
with the given identifier already exists within the scheduler.- Parameters:
triggerKey
- the identifier to check for- Returns:
- true if a Trigger exists with the given identifier
- Throws:
SchedulerException
-
clear
void clear() throws SchedulerException
- Throws:
SchedulerException
-
-