public interface JobExecutionContext
JobDetail
instance as it is
executed, and to a Trigger
instance after the
execution completes.
The JobDataMap
found on this object (via the
getMergedJobDataMap()
method) serves as a convenience -
it is a merge of the JobDataMap
found on the
JobDetail
and the one found on the Trigger
, with
the value in the latter overriding any same-named values in the former.
It is thus considered a 'best practice' that the execute code of a Job
retrieve data from the JobDataMap found on this object NOTE: Do not
expect value 'set' into this JobDataMap to somehow be set back onto a
job's own JobDataMap - even if it has the
@PersistJobDataAfterExecution
annotation.
JobExecutionContext
s are also returned from the
Scheduler.getCurrentlyExecutingJobs()
method. These are the same instances as those passed into the jobs that are
currently executing within the scheduler. The exception to this is when your
application is using Quartz remotely (i.e. via RMI) - in which case you get
a clone of the JobExecutionContext
s, and their references to
the Scheduler
and Job
instances have been lost (a
clone of the JobDetail
is still available - just not a handle
to the job instance that is running).
getScheduler()
,
getMergedJobDataMap()
,
getJobDetail()
,
Job
,
Trigger
,
JobDataMap
Modifier and Type | Method and Description |
---|---|
Object |
get(Object key)
Get the value with the given key from the context's data map.
|
Calendar |
getCalendar()
Get a handle to the
Calendar referenced by the Trigger
instance that fired the Job . |
String |
getFireInstanceId()
Get the unique Id that identifies this particular firing instance of the
trigger that triggered this job execution.
|
Date |
getFireTime()
The actual time the trigger fired.
|
JobDetail |
getJobDetail()
Get the
JobDetail associated with the Job . |
Job |
getJobInstance()
Get the instance of the
Job that was created for this
execution. |
long |
getJobRunTime()
The amount of time the job ran for (in milliseconds).
|
JobDataMap |
getMergedJobDataMap()
Get the convenience
JobDataMap of this execution context. |
Date |
getNextFireTime() |
Date |
getPreviousFireTime() |
TriggerKey |
getRecoveringTriggerKey()
Return the
TriggerKey of the originally scheduled and now recovering job. |
int |
getRefireCount() |
Object |
getResult()
Returns the result (if any) that the
Job set before its
execution completed (the type of object set as the result is entirely up
to the particular job). |
Date |
getScheduledFireTime()
The scheduled time the trigger fired for.
|
Scheduler |
getScheduler()
Get a handle to the
Scheduler instance that fired the
Job . |
Trigger |
getTrigger()
Get a handle to the
Trigger instance that fired the
Job . |
boolean |
isRecovering()
If the
Job is being re-executed because of a 'recovery'
situation, this method will return true . |
void |
put(Object key,
Object value)
Put the specified value into the context's data map with the given key.
|
void |
setResult(Object result)
Set the result (if any) of the
Job 's execution (the type of
object set as the result is entirely up to the particular job). |
Scheduler getScheduler()
Get a handle to the Scheduler
instance that fired the
Job
.
Trigger getTrigger()
Get a handle to the Trigger
instance that fired the
Job
.
Calendar getCalendar()
Get a handle to the Calendar
referenced by the Trigger
instance that fired the Job
.
boolean isRecovering()
If the Job
is being re-executed because of a 'recovery'
situation, this method will return true
.
TriggerKey getRecoveringTriggerKey() throws IllegalStateException
TriggerKey
of the originally scheduled and now recovering job.
When recovering a previously failed job execution this method returns the identity
of the originally firing trigger. This recovering job will have been scheduled for
the same firing time as the original job, and so is available via the
getScheduledFireTime()
method. The original firing time of the job can be
accessed via the Scheduler.FAILED_JOB_ORIGINAL_TRIGGER_FIRETIME_IN_MILLISECONDS
element of this job's JobDataMap
.
IllegalStateException
- if this is not a recovering job.int getRefireCount()
JobDataMap getMergedJobDataMap()
Get the convenience JobDataMap
of this execution context.
The JobDataMap
found on this object serves as a convenience -
it is a merge of the JobDataMap
found on the
JobDetail
and the one found on the Trigger
, with
the value in the latter overriding any same-named values in the former.
It is thus considered a 'best practice' that the execute code of a Job
retrieve data from the JobDataMap found on this object.
NOTE: Do not expect value 'set' into this JobDataMap to somehow be set
or persisted back onto a job's own JobDataMap - even if it has the
@PersistJobDataAfterExecution
annotation.
Attempts to change the contents of this map typically result in an
IllegalStateException
.
JobDetail getJobDetail()
Get the JobDetail
associated with the Job
.
Job getJobInstance()
Get the instance of the Job
that was created for this
execution.
Note: The Job instance is not available through remote scheduler interfaces.
Date getFireTime()
getScheduledFireTime()
Date getScheduledFireTime()
getFireTime()
Date getPreviousFireTime()
Date getNextFireTime()
String getFireInstanceId()
Scheduler.interrupt(String)
Object getResult()
Job
set before its
execution completed (the type of object set as the result is entirely up
to the particular job).
The result itself is meaningless to Quartz, but may be informative
to
or
JobListener
s
that are watching the job's
execution.
TriggerListener
s
void setResult(Object result)
Job
's execution (the type of
object set as the result is entirely up to the particular job).
The result itself is meaningless to Quartz, but may be informative
to
or
JobListener
s
that are watching the job's
execution.
TriggerListener
s
long getJobRunTime()
JobListener
s and TriggerListener
s.void put(Object key, Object value)
NOTE: this data is volatile - it is lost after the job execution completes, and all TriggerListeners and JobListeners have been notified.
key
- the key for the associated valuevalue
- the value to storeCopyright 2001-2019, Terracotta, Inc.