public interface Scheduler
A Scheduler
maintains a registry of
s
and JobDetail
s. Once registered, the Trigger
Scheduler
is responsible for executing Job
s when their associated
Trigger
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 a SchedulerFactory
Scheduler
has been created, it is in "stand-by" mode, and must have its
start()
method called before it will fire any Job
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 the JobDetail
Job
.
JobDetail
instances can then be registered with the Scheduler
via the scheduleJob(JobDetail, Trigger)
or addJob(JobDetail, boolean)
method.
Trigger
s can then be defined to fire individual Job
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 and Trigger
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 of Scheduler
Jobs
s and
Triggers
s. If you don't have need for assigning a group to a
given Jobs
of Triggers
, then you can use the
DEFAULT_GROUP
constant defined on this interface.
Stored Job
s can also be 'manually' triggered through the use
of the triggerJob(String jobName, String jobGroup)
function.
Client programs may also be interested in the 'listener' interfaces that are
available from Quartz. The
interface
provides notifications of JobListener
Job
executions. The
interface provides notifications of TriggerListener
Trigger
firings. The
interface provides notifications of
SchedulerListener
Scheduler
events and errors. Listeners can be associated with
local schedulers through the ListenerManager
interface.
The setup/configuration of a Scheduler
instance is very
customizable. Please consult the documentation distributed with Quartz.
Job
,
JobDetail
,
JobBuilder
,
Trigger
,
TriggerBuilder
,
JobListener
,
TriggerListener
,
SchedulerListener
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_FAIL_OVER_GROUP
A constant
Trigger group name used internally by the
scheduler - clients should not use the value of this constant
("FAILED_OVER_JOBS") for the name of a Trigger 's group. |
static String |
DEFAULT_GROUP
A (possibly) useful constant that can be used for specifying the group
that
Job and Trigger instances belong to. |
static String |
DEFAULT_RECOVERY_GROUP
A constant
Trigger group name used internally by the
scheduler - clients should not use the value of this constant
("RECOVERING_JOBS") for the name of a Trigger 's group. |
static String |
FAILED_JOB_ORIGINAL_TRIGGER_FIRETIME_IN_MILLISECONDS
A constant
JobDataMap key that can be used to retrieve the
fire time of the original Trigger from a recovery
trigger's data map in the case of a job recovering after a failed scheduler
instance. |
static String |
FAILED_JOB_ORIGINAL_TRIGGER_GROUP
A constant
JobDataMap key that can be used to retrieve the
group of the original Trigger from a recovery trigger's
data map in the case of a job recovering after a failed scheduler
instance. |
static String |
FAILED_JOB_ORIGINAL_TRIGGER_NAME
A constant
JobDataMap key that can be used to retrieve the
name of the original Trigger from a recovery trigger's
data map in the case of a job recovering after a failed scheduler
instance. |
static String |
FAILED_JOB_ORIGINAL_TRIGGER_SCHEDULED_FIRETIME_IN_MILLISECONDS
A constant
JobDataMap key that can be used to retrieve the
scheduled fire time of the original Trigger from a recovery
trigger's data map in the case of a job recovering after a failed scheduler
instance. |
Modifier and Type | Method and Description |
---|---|
void |
addCalendar(String calName,
Calendar calendar,
boolean replace,
boolean updateTriggers)
Add (register) the given
Calendar to the Scheduler. |
void |
addJob(JobDetail jobDetail,
boolean replace)
Add the given
Job to the Scheduler - with no associated
Trigger . |
void |
addJob(JobDetail jobDetail,
boolean replace,
boolean storeNonDurableWhileAwaitingScheduling)
Add the given
Job to the Scheduler - with no associated
Trigger . |
boolean |
checkExists(JobKey jobKey)
Determine whether a
Job with the given identifier already
exists within the scheduler. |
boolean |
checkExists(TriggerKey triggerKey)
Determine whether a
Trigger with the given identifier already
exists within the scheduler. |
void |
clear()
|
boolean |
deleteCalendar(String calName)
Delete the identified
Calendar from the Scheduler. |
boolean |
deleteJob(JobKey jobKey)
Delete the identified
Job from the Scheduler - and any
associated Trigger s. |
boolean |
deleteJobs(List<JobKey> jobKeys)
Delete the identified
Job s from the Scheduler - and any
associated Trigger s. |
Calendar |
getCalendar(String calName)
Get the
instance with the given name. |
List<String> |
getCalendarNames()
Get the names of all registered
. |
SchedulerContext |
getContext()
Returns the
SchedulerContext of the Scheduler . |
List<JobExecutionContext> |
getCurrentlyExecutingJobs()
Return a list of
JobExecutionContext objects that
represent all currently executing Jobs in this Scheduler instance. |
JobDetail |
getJobDetail(JobKey jobKey)
Get the
for the Job
instance with the given key. |
List<String> |
getJobGroupNames()
Get the names of all known
groups. |
Set<JobKey> |
getJobKeys(GroupMatcher<JobKey> matcher)
Get the keys of all the
in the matching groups. |
ListenerManager |
getListenerManager()
Get a reference to the scheduler's
ListenerManager ,
through which listeners may be registered. |
SchedulerMetaData |
getMetaData()
Get a
SchedulerMetaData object describing the settings
and capabilities of the scheduler instance. |
Set<String> |
getPausedTriggerGroups()
Get the names of all
groups that are paused. |
String |
getSchedulerInstanceId()
Returns the instance Id of the
Scheduler . |
String |
getSchedulerName()
Returns the name of the
Scheduler . |
Trigger |
getTrigger(TriggerKey triggerKey)
Get the
instance with the given key. |
List<String> |
getTriggerGroupNames()
Get the names of all known
groups. |
Set<TriggerKey> |
getTriggerKeys(GroupMatcher<TriggerKey> matcher)
Get the names of all the
in the given
group. |
List<? extends Trigger> |
getTriggersOfJob(JobKey jobKey)
|
Trigger.TriggerState |
getTriggerState(TriggerKey triggerKey)
Get the current state of the identified
. |
boolean |
interrupt(JobKey jobKey)
Request the interruption, within this Scheduler instance, of all
currently executing instances of the identified
Job , which
must be an implementor of the InterruptableJob interface. |
boolean |
interrupt(String fireInstanceId)
Request the interruption, within this Scheduler instance, of the
identified executing
Job instance, which
must be an implementor of the InterruptableJob interface. |
boolean |
isInStandbyMode()
Reports whether the
Scheduler is in stand-by mode. |
boolean |
isShutdown()
Reports whether the
Scheduler has been shutdown. |
boolean |
isStarted()
Whether the scheduler has been started.
|
void |
pauseAll()
Pause all triggers - similar to calling
pauseTriggerGroup(group)
on every group, however, after using this method resumeAll()
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 current Trigger s. |
void |
pauseJobs(GroupMatcher<JobKey> matcher)
Pause all of the
in the
matching groups - by pausing all of their Trigger s. |
void |
pauseTrigger(TriggerKey triggerKey)
Pause the
with the given key. |
void |
pauseTriggers(GroupMatcher<TriggerKey> matcher)
Pause all of the
in the groups matching. |
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 & group specified)
- however, the new trigger need not have the same name as the old trigger. |
void |
resetTriggerFromErrorState(TriggerKey triggerKey)
Reset the current state of the identified
from Trigger.TriggerState.ERROR to Trigger.TriggerState.NORMAL or
Trigger.TriggerState.PAUSED as appropriate. |
void |
resumeAll()
Resume (un-pause) all triggers - similar to calling
resumeTriggerGroup(group) on every group. |
void |
resumeJob(JobKey jobKey)
Resume (un-pause) the
with
the given key. |
void |
resumeJobs(GroupMatcher<JobKey> matcher)
Resume (un-pause) all of the
in matching groups. |
void |
resumeTrigger(TriggerKey triggerKey)
Resume (un-pause) the
with the given
key. |
void |
resumeTriggers(GroupMatcher<TriggerKey> matcher)
Resume (un-pause) all of the
in matching groups. |
void |
scheduleJob(JobDetail jobDetail,
Set<? extends Trigger> triggersForJob,
boolean replace)
Schedule the given job with the related set of triggers.
|
Date |
scheduleJob(JobDetail jobDetail,
Trigger trigger)
|
Date |
scheduleJob(Trigger trigger)
|
void |
scheduleJobs(Map<JobDetail,Set<? extends Trigger>> triggersAndJobs,
boolean replace)
Schedule all of the given jobs with the related set of triggers.
|
void |
setJobFactory(JobFactory factory)
Set the
JobFactory that will be responsible for producing
instances of Job classes. |
void |
shutdown()
Halts the
Scheduler 's firing of ,
and cleans up all resources associated with the Scheduler. |
void |
shutdown(boolean waitForJobsToComplete)
Halts the
Scheduler 's firing of ,
and cleans up all resources associated with the Scheduler. |
void |
standby()
Temporarily halts the
Scheduler 's firing of . |
void |
start()
Starts the
Scheduler 's threads that fire . |
void |
startDelayed(int seconds)
Calls {#start()} after the indicated number of seconds.
|
void |
triggerJob(JobKey jobKey)
Trigger the identified
(execute it now). |
void |
triggerJob(JobKey jobKey,
JobDataMap data)
Trigger the identified
(execute it now). |
boolean |
unscheduleJob(TriggerKey triggerKey)
Remove the indicated
from the scheduler. |
boolean |
unscheduleJobs(List<TriggerKey> triggerKeys)
Remove all of the indicated
s from the scheduler. |
static final String DEFAULT_GROUP
Job
and Trigger
instances belong to.static final String DEFAULT_RECOVERY_GROUP
Trigger
group name used internally by the
scheduler - clients should not use the value of this constant
("RECOVERING_JOBS") for the name of a Trigger
's group.static final String DEFAULT_FAIL_OVER_GROUP
Trigger
group name used internally by the
scheduler - clients should not use the value of this constant
("FAILED_OVER_JOBS") for the name of a Trigger
's group.static final String FAILED_JOB_ORIGINAL_TRIGGER_NAME
JobDataMap
key that can be used to retrieve the
name of the original Trigger
from a recovery trigger's
data map in the case of a job recovering after a failed scheduler
instance.static final String FAILED_JOB_ORIGINAL_TRIGGER_GROUP
JobDataMap
key that can be used to retrieve the
group of the original Trigger
from a recovery trigger's
data map in the case of a job recovering after a failed scheduler
instance.static final String FAILED_JOB_ORIGINAL_TRIGGER_FIRETIME_IN_MILLISECONDS
JobDataMap
key that can be used to retrieve the
fire time of the original Trigger
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.
static final String FAILED_JOB_ORIGINAL_TRIGGER_SCHEDULED_FIRETIME_IN_MILLISECONDS
JobDataMap
key that can be used to retrieve the
scheduled fire time of the original Trigger
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.
String getSchedulerName() throws SchedulerException
Scheduler
.SchedulerException
String getSchedulerInstanceId() throws SchedulerException
Scheduler
.SchedulerException
SchedulerContext getContext() throws SchedulerException
SchedulerContext
of the Scheduler
.SchedulerException
void start() throws SchedulerException
Scheduler
's threads that fire Trigger
s
.
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 the standby()
method.
The misfire/recovery process will be started, if it is the initial call to this method on this scheduler instance.
SchedulerException
- if shutdown()
has been called, or there is an
error within the Scheduler
.startDelayed(int)
,
standby()
,
shutdown()
void startDelayed(int seconds) throws SchedulerException
SchedulerException
- if shutdown()
has been called, or there is an
error within the Scheduler
.start()
,
standby()
,
shutdown()
boolean isStarted() throws SchedulerException
Note: This only reflects whether
has ever
been called on this Scheduler, so it will return start()
true
even
if the Scheduler
is currently in standby mode or has been
since shutdown.
SchedulerException
start()
,
isShutdown()
,
isInStandbyMode()
void standby() throws SchedulerException
Scheduler
's firing of Trigger
s
.
When start()
is called (to bring the scheduler out of
stand-by mode), trigger misfire instructions will NOT be applied
during the execution of the start()
method - any misfires
will be detected immediately afterward (by the JobStore
's
normal process).
The scheduler is not destroyed, and can be re-started at any time.
SchedulerException
start()
,
pauseAll()
boolean isInStandbyMode() throws SchedulerException
Scheduler
is in stand-by mode.SchedulerException
standby()
,
start()
void shutdown() throws SchedulerException
Scheduler
's firing of Trigger
s
,
and cleans up all resources associated with the Scheduler. Equivalent to
shutdown(false)
.
The scheduler cannot be re-started.
SchedulerException
shutdown(boolean)
void shutdown(boolean waitForJobsToComplete) throws SchedulerException
Scheduler
's firing of Trigger
s
,
and cleans up all resources associated with the Scheduler.
The scheduler cannot be re-started.
waitForJobsToComplete
- if true
the scheduler will not allow this method
to return until all currently executing jobs have completed.SchedulerException
shutdown()
boolean isShutdown() throws SchedulerException
Scheduler
has been shutdown.SchedulerException
SchedulerMetaData getMetaData() throws SchedulerException
SchedulerMetaData
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.
SchedulerException
List<JobExecutionContext> getCurrentlyExecutingJobs() throws SchedulerException
JobExecutionContext
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.
SchedulerException
JobExecutionContext
void setJobFactory(JobFactory factory) throws SchedulerException
JobFactory
that will be responsible for producing
instances of Job
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.
SchedulerException
JobFactory
ListenerManager getListenerManager() throws SchedulerException
ListenerManager
,
through which listeners may be registered.ListenerManager
SchedulerException
- if the scheduler is not localListenerManager
,
JobListener
,
TriggerListener
,
SchedulerListener
Date scheduleJob(JobDetail jobDetail, Trigger trigger) throws SchedulerException
JobDetail
to the
Scheduler, and associate the given Trigger
with
it.
If the given Trigger does not reference any Job
, then it
will be set to reference the Job passed with it into this method.
SchedulerException
- if the Job or Trigger cannot be added to the Scheduler, or
there is an internal Scheduler error.Date scheduleJob(Trigger trigger) throws SchedulerException
SchedulerException
- if the indicated Job does not exist, or the Trigger cannot be
added to the Scheduler, or there is an internal Scheduler
error.void scheduleJobs(Map<JobDetail,Set<? extends Trigger>> triggersAndJobs, boolean replace) throws SchedulerException
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.
ObjectAlreadyExistsException
- if the job/trigger keys
are not unique and the replace flag is not set to true.SchedulerException
void scheduleJob(JobDetail jobDetail, Set<? extends Trigger> triggersForJob, boolean replace) throws SchedulerException
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.
ObjectAlreadyExistsException
- if the job/trigger keys
are not unique and the replace flag is not set to true.SchedulerException
boolean unscheduleJob(TriggerKey triggerKey) throws SchedulerException
Trigger
from the scheduler.
If the related job does not have any other triggers, and the job is not durable, then the job will also be deleted.
SchedulerException
boolean unscheduleJobs(List<TriggerKey> triggerKeys) throws SchedulerException
Trigger
s from the scheduler.
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).
SchedulerException
Date rescheduleJob(TriggerKey triggerKey, Trigger newTrigger) throws SchedulerException
Trigger
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 & group specified)
- however, the new trigger need not have the same name as the old trigger.triggerKey
- identity of the trigger to replacenewTrigger
- The new Trigger
to be stored.null
if a Trigger
with the given
name & 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.SchedulerException
void addJob(JobDetail jobDetail, boolean replace) throws SchedulerException
Job
to the Scheduler - with no associated
Trigger
. The Job
will be 'dormant' until
it is scheduled with a Trigger
, or Scheduler.triggerJob()
is called for it.
The Job
must by definition be 'durable', if it is not,
SchedulerException will be thrown.
SchedulerException
- if there is an internal Scheduler error, or if the Job is not
durable, or a Job with the same name already exists, and
replace
is false
.addJob(JobDetail, boolean, boolean)
void addJob(JobDetail jobDetail, boolean replace, boolean storeNonDurableWhileAwaitingScheduling) throws SchedulerException
Job
to the Scheduler - with no associated
Trigger
. The Job
will be 'dormant' until
it is scheduled with a Trigger
, or Scheduler.triggerJob()
is called for it.
With the storeNonDurableWhileAwaitingScheduling
parameter
set to true
, 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).
SchedulerException
- if there is an internal Scheduler error, or if the Job is not
durable, or a Job with the same name already exists, and
replace
is false
.boolean deleteJob(JobKey jobKey) throws SchedulerException
Job
from the Scheduler - and any
associated Trigger
s.SchedulerException
- if there is an internal Scheduler error.boolean deleteJobs(List<JobKey> jobKeys) throws SchedulerException
Job
s from the Scheduler - and any
associated Trigger
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).
SchedulerException
- if there is an internal Scheduler error.void triggerJob(JobKey jobKey) throws SchedulerException
JobDetail
(execute it now).SchedulerException
void triggerJob(JobKey jobKey, JobDataMap data) throws SchedulerException
JobDetail
(execute it now).data
- the (possibly null
) JobDataMap to be
associated with the trigger that fires the job immediately.SchedulerException
void pauseJob(JobKey jobKey) throws SchedulerException
JobDetail
with the given
key - by pausing all of its current Trigger
s.SchedulerException
resumeJob(JobKey)
void pauseJobs(GroupMatcher<JobKey> matcher) throws SchedulerException
JobDetail
s
in the
matching groups - by pausing all of their Trigger
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.
matcher
- The matcher to evaluate against know groupsSchedulerException
- On errorresumeJobs(org.quartz.impl.matchers.GroupMatcher)
void pauseTrigger(TriggerKey triggerKey) throws SchedulerException
Trigger
with the given key.SchedulerException
resumeTrigger(TriggerKey)
void pauseTriggers(GroupMatcher<TriggerKey> matcher) throws SchedulerException
Trigger
s
in the groups matching.
The 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.
matcher
- The matcher to evaluate against know groupsSchedulerException
resumeTriggers(org.quartz.impl.matchers.GroupMatcher)
void resumeJob(JobKey jobKey) throws SchedulerException
JobDetail
with
the given key.
If any of the Job
'sTrigger
s missed one
or more fire-times, then the Trigger
's misfire
instruction will be applied.
SchedulerException
pauseJob(JobKey)
void resumeJobs(GroupMatcher<JobKey> matcher) throws SchedulerException
JobDetail
s
in matching groups.
If any of the Job
s had Trigger
s that
missed one or more fire-times, then the Trigger
's
misfire instruction will be applied.
matcher
- The matcher to evaluate against known paused groupsSchedulerException
- On errorpauseJobs(GroupMatcher)
void resumeTrigger(TriggerKey triggerKey) throws SchedulerException
Trigger
with the given
key.
If the Trigger
missed one or more fire-times, then the
Trigger
's misfire instruction will be applied.
SchedulerException
pauseTrigger(TriggerKey)
void resumeTriggers(GroupMatcher<TriggerKey> matcher) throws SchedulerException
Trigger
s
in matching groups.
If any Trigger
missed one or more fire-times, then the
Trigger
's misfire instruction will be applied.
matcher
- The matcher to evaluate against know paused groupsSchedulerException
- On errorpauseTriggers(org.quartz.impl.matchers.GroupMatcher)
void pauseAll() throws SchedulerException
pauseTriggerGroup(group)
on every group, however, after using this method resumeAll()
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.
SchedulerException
resumeAll()
,
pauseTriggers(org.quartz.impl.matchers.GroupMatcher)
,
standby()
void resumeAll() throws SchedulerException
resumeTriggerGroup(group)
on every group.
If any Trigger
missed one or more fire-times, then the
Trigger
's misfire instruction will be applied.
SchedulerException
pauseAll()
List<String> getJobGroupNames() throws SchedulerException
JobDetail
groups.SchedulerException
Set<JobKey> getJobKeys(GroupMatcher<JobKey> matcher) throws SchedulerException
JobDetail
s
in the matching groups.matcher
- Matcher to evaluate against known groupsSchedulerException
- On errorList<? extends Trigger> getTriggersOfJob(JobKey jobKey) throws SchedulerException
Trigger
s that are associated with the
identified 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)
).
SchedulerException
List<String> getTriggerGroupNames() throws SchedulerException
Trigger
groups.SchedulerException
Set<TriggerKey> getTriggerKeys(GroupMatcher<TriggerKey> matcher) throws SchedulerException
Trigger
s
in the given
group.matcher
- Matcher to evaluate against known groupsSchedulerException
- On errorSet<String> getPausedTriggerGroups() throws SchedulerException
Trigger
groups that are paused.SchedulerException
JobDetail getJobDetail(JobKey jobKey) throws SchedulerException
JobDetail
for the 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)
).
SchedulerException
Trigger getTrigger(TriggerKey triggerKey) throws SchedulerException
Trigger
instance with the given key.
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)
).
SchedulerException
Trigger.TriggerState getTriggerState(TriggerKey triggerKey) throws SchedulerException
Trigger
.SchedulerException
Trigger.TriggerState
void resetTriggerFromErrorState(TriggerKey triggerKey) throws SchedulerException
Trigger
from Trigger.TriggerState.ERROR
to Trigger.TriggerState.NORMAL
or
Trigger.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.
SchedulerException
Trigger.TriggerState
void addCalendar(String calName, Calendar calendar, boolean replace, boolean updateTriggers) throws SchedulerException
Calendar
to the Scheduler.updateTriggers
- whether or not to update existing triggers that
referenced the already existing calendar so that they are 'correct'
based on the new trigger.SchedulerException
- if there is an internal Scheduler error, or a Calendar with
the same name already exists, and replace
is
false
.boolean deleteCalendar(String calName) throws SchedulerException
Calendar
from the Scheduler.
If removal of the Calendar
would result in
Trigger
s pointing to non-existent calendars, then a
SchedulerException
will be thrown.
SchedulerException
- if there is an internal Scheduler error, or one or more
triggers reference the calendarCalendar getCalendar(String calName) throws SchedulerException
Calendar
instance with the given name.SchedulerException
List<String> getCalendarNames() throws SchedulerException
Calendar
s
.SchedulerException
boolean interrupt(JobKey jobKey) throws UnableToInterruptJobException
Job
, which
must be an implementor of the InterruptableJob
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 that
interrupt()
on one instances throws an exception, all
remaining instances (that have not yet been interrupted) will not have
their interrupt()
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.
UnableToInterruptJobException
- if the job does not implement
InterruptableJob
, or there is an exception while
interrupting the job.InterruptableJob.interrupt()
,
getCurrentlyExecutingJobs()
,
interrupt(String)
boolean interrupt(String fireInstanceId) throws UnableToInterruptJobException
Job
instance, which
must be an implementor of the InterruptableJob
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.
fireInstanceId
- the unique identifier of the job instance to
be interrupted (see JobExecutionContext.getFireInstanceId()
UnableToInterruptJobException
- if the job does not implement
InterruptableJob
, or there is an exception while
interrupting the job.InterruptableJob.interrupt()
,
getCurrentlyExecutingJobs()
,
JobExecutionContext.getFireInstanceId()
,
interrupt(JobKey)
boolean checkExists(JobKey jobKey) throws SchedulerException
Job
with the given identifier already
exists within the scheduler.jobKey
- the identifier to check forSchedulerException
boolean checkExists(TriggerKey triggerKey) throws SchedulerException
Trigger
with the given identifier already
exists within the scheduler.triggerKey
- the identifier to check forSchedulerException
void clear() throws SchedulerException
SchedulerException
Copyright 2001-2019, Terracotta, Inc.