org.quartz
Interface Trigger

All Superinterfaces:
java.lang.Cloneable, java.lang.Comparable<Trigger>, java.io.Serializable
All Known Subinterfaces:
CalendarIntervalTrigger, CoreTrigger, CronTrigger, DailyTimeIntervalTrigger, LocalityTrigger, SimpleTrigger
All Known Implementing Classes:
AbstractTrigger, CalendarIntervalTriggerImpl, CronTriggerImpl, DailyTimeIntervalTriggerImpl, DelegatingLocalityTrigger, SimpleTriggerImpl

public interface Trigger
extends java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<Trigger>

The base interface with properties common to all Triggers - use TriggerBuilder to instantiate an actual Trigger.

Triggerss have a TriggerKey associated with them, which should uniquely identify them within a single Scheduler.

Triggers are the 'mechanism' by which Jobs are scheduled. Many Triggers can point to the same Job, but a single Trigger can only point to one Job.

Triggers can 'send' parameters/data to Jobs by placing contents into the JobDataMap on the Trigger.

Author:
James House
See Also:
TriggerBuilder, JobDataMap, JobExecutionContext, TriggerUtils, SimpleTrigger, CronTrigger, CalendarIntervalTrigger, NthIncludedDayTrigger

Nested Class Summary
static class Trigger.CompletedExecutionInstruction
          NOOP Instructs the Scheduler that the Trigger has no further instructions.
static class Trigger.TriggerState
           
static class Trigger.TriggerTimeComparator
          A Comparator that compares trigger's next fire times, or in other words, sorts them according to earliest next fire time.
 
Field Summary
static int DEFAULT_PRIORITY
          The default value for priority.
static int MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY
          Instructs the Scheduler that the Trigger will never be evaluated for a misfire situation, and that the scheduler will simply try to fire it as soon as it can, and then update the Trigger as if it had fired at the proper time.
static int MISFIRE_INSTRUCTION_SMART_POLICY
          Instructs the Scheduler that upon a mis-fire situation, the updateAfterMisfire() method will be called on the Trigger to determine the mis-fire instruction, which logic will be trigger-implementation-dependent.
static long serialVersionUID
           
 
Method Summary
 int compareTo(Trigger other)
           Compare the next fire time of this Trigger to that of another by comparing their keys, or in other words, sorts them according to the natural (i.e.
 boolean equals(java.lang.Object other)
          Trigger equality is based upon the equality of the TriggerKey.
 java.lang.String getCalendarName()
          Get the name of the Calendar associated with this Trigger.
 java.lang.String getDescription()
          Return the description given to the Trigger instance by its creator (if any).
 java.util.Date getEndTime()
          Get the time at which the Trigger should quit repeating - regardless of any remaining repeats (based on the trigger's particular repeat settings).
 java.util.Date getFinalFireTime()
          Returns the last time at which the Trigger will fire, if the Trigger will repeat indefinitely, null will be returned.
 java.util.Date getFireTimeAfter(java.util.Date afterTime)
          Returns the next time at which the Trigger will fire, after the given time.
 JobDataMap getJobDataMap()
          Get the JobDataMap that is associated with the Trigger.
 JobKey getJobKey()
           
 TriggerKey getKey()
           
 int getMisfireInstruction()
          Get the instruction the Scheduler should be given for handling misfire situations for this Trigger- the concrete Trigger type that you are using will have defined a set of additional MISFIRE_INSTRUCTION_XXX constants that may be set as this property's value.
 java.util.Date getNextFireTime()
          Returns the next time at which the Trigger is scheduled to fire.
 java.util.Date getPreviousFireTime()
          Returns the previous time at which the Trigger fired.
 int getPriority()
          The priority of a Trigger acts as a tiebreaker such that if two Triggers have the same scheduled fire time, then the one with the higher priority will get first access to a worker thread.
 ScheduleBuilder<? extends Trigger> getScheduleBuilder()
          Get a ScheduleBuilder that is configured to produce a schedule identical to this trigger's schedule.
 java.util.Date getStartTime()
          Get the time at which the Trigger should occur.
 TriggerBuilder<? extends Trigger> getTriggerBuilder()
          Get a TriggerBuilder that is configured to produce a Trigger identical to this one.
 boolean mayFireAgain()
          Used by the Scheduler to determine whether or not it is possible for this Trigger to fire again.
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

MISFIRE_INSTRUCTION_SMART_POLICY

static final int MISFIRE_INSTRUCTION_SMART_POLICY
Instructs the Scheduler that upon a mis-fire situation, the updateAfterMisfire() method will be called on the Trigger to determine the mis-fire instruction, which logic will be trigger-implementation-dependent.

In order to see if this instruction fits your needs, you should look at the documentation for the getSmartMisfirePolicy() method on the particular Trigger implementation you are using.

See Also:
Constant Field Values

MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY

static final int MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY
Instructs the Scheduler that the Trigger will never be evaluated for a misfire situation, and that the scheduler will simply try to fire it as soon as it can, and then update the Trigger as if it had fired at the proper time.

NOTE: if a trigger uses this instruction, and it has missed several of its scheduled firings, then several rapid firings may occur as the trigger attempt to catch back up to where it would have been. For example, a SimpleTrigger that fires every 15 seconds which has misfired for 5 minutes will fire 20 times once it gets the chance to fire.

See Also:
Constant Field Values

DEFAULT_PRIORITY

static final int DEFAULT_PRIORITY
The default value for priority.

See Also:
Constant Field Values
Method Detail

getKey

TriggerKey getKey()

getJobKey

JobKey getJobKey()

getDescription

java.lang.String getDescription()
Return the description given to the Trigger instance by its creator (if any).

Returns:
null if no description was set.

getCalendarName

java.lang.String getCalendarName()
Get the name of the Calendar associated with this Trigger.

Returns:
null if there is no associated Calendar.

getJobDataMap

JobDataMap getJobDataMap()
Get the JobDataMap that is associated with the Trigger.

Changes made to this map during job execution are not re-persisted, and in fact typically result in an IllegalStateException.


getPriority

int getPriority()
The priority of a Trigger acts as a tiebreaker such that if two Triggers have the same scheduled fire time, then the one with the higher priority will get first access to a worker thread.

If not explicitly set, the default value is 5.

See Also:
DEFAULT_PRIORITY

mayFireAgain

boolean mayFireAgain()
Used by the Scheduler to determine whether or not it is possible for this Trigger to fire again.

If the returned value is false then the Scheduler may remove the Trigger from the JobStore.


getStartTime

java.util.Date getStartTime()
Get the time at which the Trigger should occur.


getEndTime

java.util.Date getEndTime()
Get the time at which the Trigger should quit repeating - regardless of any remaining repeats (based on the trigger's particular repeat settings).

See Also:
getFinalFireTime()

getNextFireTime

java.util.Date getNextFireTime()
Returns the next time at which the Trigger is scheduled to fire. If the trigger will not fire again, null will be returned. Note that the time returned can possibly be in the past, if the time that was computed for the trigger to next fire has already arrived, but the scheduler has not yet been able to fire the trigger (which would likely be due to lack of resources e.g. threads).

The value returned is not guaranteed to be valid until after the Trigger has been added to the scheduler.

See Also:
TriggerUtils#computeFireTimesBetween(Trigger, Calendar, Date, Date)

getPreviousFireTime

java.util.Date getPreviousFireTime()
Returns the previous time at which the Trigger fired. If the trigger has not yet fired, null will be returned.


getFireTimeAfter

java.util.Date getFireTimeAfter(java.util.Date afterTime)
Returns the next time at which the Trigger will fire, after the given time. If the trigger will not fire after the given time, null will be returned.


getFinalFireTime

java.util.Date getFinalFireTime()
Returns the last time at which the Trigger will fire, if the Trigger will repeat indefinitely, null will be returned.

Note that the return time *may* be in the past.


getMisfireInstruction

int getMisfireInstruction()
Get the instruction the Scheduler should be given for handling misfire situations for this Trigger- the concrete Trigger type that you are using will have defined a set of additional MISFIRE_INSTRUCTION_XXX constants that may be set as this property's value.

If not explicitly set, the default value is MISFIRE_INSTRUCTION_SMART_POLICY.

See Also:
MISFIRE_INSTRUCTION_SMART_POLICY, #updateAfterMisfire(Calendar), SimpleTrigger, CronTrigger

getTriggerBuilder

TriggerBuilder<? extends Trigger> getTriggerBuilder()
Get a TriggerBuilder that is configured to produce a Trigger identical to this one.

See Also:
getScheduleBuilder()

getScheduleBuilder

ScheduleBuilder<? extends Trigger> getScheduleBuilder()
Get a ScheduleBuilder that is configured to produce a schedule identical to this trigger's schedule.

See Also:
getTriggerBuilder()

equals

boolean equals(java.lang.Object other)
Trigger equality is based upon the equality of the TriggerKey.

Overrides:
equals in class java.lang.Object
Returns:
true if the key of this Trigger equals that of the given Trigger.

compareTo

int compareTo(Trigger other)

Compare the next fire time of this Trigger to that of another by comparing their keys, or in other words, sorts them according to the natural (i.e. alphabetical) order of their keys.

Specified by:
compareTo in interface java.lang.Comparable<Trigger>


Copyright 2001-2011, Terracotta, Inc.