org.quartz
Interface JobExecutionContext

All Known Implementing Classes:
JobExecutionContextImpl

public interface JobExecutionContext

A context bundle containing handles to various environment information, that is given to a 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 JobExecutionContexts, 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).

Author:
James House
See Also:
getScheduler(), getMergedJobDataMap(), getJobDetail(), Job, Trigger, JobDataMap

Method Summary
 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).
 

Method Detail

getScheduler

Scheduler getScheduler()

Get a handle to the Scheduler instance that fired the Job.


getTrigger

Trigger getTrigger()

Get a handle to the Trigger instance that fired the Job.


getCalendar

Calendar getCalendar()

Get a handle to the Calendar referenced by the Trigger instance that fired the Job.


isRecovering

boolean isRecovering()

If the Job is being re-executed because of a 'recovery' situation, this method will return true.


getRecoveringTriggerKey

TriggerKey getRecoveringTriggerKey()
                                   throws IllegalStateException
Return the 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.

Returns:
the recovering trigger details
Throws:
IllegalStateException - if this is not a recovering job.

getRefireCount

int getRefireCount()

getMergedJobDataMap

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.


getJobDetail

JobDetail getJobDetail()

Get the JobDetail associated with the Job.


getJobInstance

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.


getFireTime

Date getFireTime()
The actual time the trigger fired. For instance the scheduled time may have been 10:00:00 but the actual fire time may have been 10:00:03 if the scheduler was too busy.

Returns:
Returns the fireTime.
See Also:
getScheduledFireTime()

getScheduledFireTime

Date getScheduledFireTime()
The scheduled time the trigger fired for. For instance the scheduled time may have been 10:00:00 but the actual fire time may have been 10:00:03 if the scheduler was too busy.

Returns:
Returns the scheduledFireTime.
See Also:
getFireTime()

getPreviousFireTime

Date getPreviousFireTime()

getNextFireTime

Date getNextFireTime()

getFireInstanceId

String getFireInstanceId()
Get the unique Id that identifies this particular firing instance of the trigger that triggered this job execution. It is unique to this JobExecutionContext instance as well.

Returns:
the unique fire instance id
See Also:
Scheduler.interrupt(String)

getResult

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).

The result itself is meaningless to Quartz, but may be informative to JobListeners or TriggerListeners that are watching the job's execution.

Returns:
Returns the result.

setResult

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).

The result itself is meaningless to Quartz, but may be informative to JobListeners or TriggerListeners that are watching the job's execution.


getJobRunTime

long getJobRunTime()
The amount of time the job ran for (in milliseconds). The returned value will be -1 until the job has actually completed (or thrown an exception), and is therefore generally only useful to JobListeners and TriggerListeners.

Returns:
Returns the jobRunTime.

put

void put(Object key,
         Object value)
Put the specified value into the context's data map with the given key. Possibly useful for sharing data between listeners and jobs.

NOTE: this data is volatile - it is lost after the job execution completes, and all TriggerListeners and JobListeners have been notified.

Parameters:
key - the key for the associated value
value - the value to store

get

Object get(Object key)
Get the value with the given key from the context's data map.

Parameters:
key - the key for the desired value


Copyright 2001-2015, Terracotta, Inc.