Interface Trigger
-
- All Superinterfaces:
java.lang.Cloneable
,java.lang.Comparable<Trigger>
,java.io.Serializable
- All Known Subinterfaces:
CalendarIntervalTrigger
,CoreTrigger
,CronTrigger
,DailyTimeIntervalTrigger
,MutableTrigger
,OperableTrigger
,SimpleTrigger
- All Known Implementing Classes:
AbstractTrigger
,CalendarIntervalTriggerImpl
,CronTriggerImpl
,DailyTimeIntervalTriggerImpl
,SimpleTriggerImpl
public interface Trigger extends java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<Trigger>
The base interface with properties common to allTrigger
s - useTriggerBuilder
to instantiate an actual Trigger.Triggers
s have aTriggerKey
associated with them, which should uniquely identify them within a single
.Scheduler
Trigger
s are the 'mechanism' by whichJob
s are scheduled. ManyTrigger
s can point to the sameJob
, but a singleTrigger
can only point to oneJob
.Triggers can 'send' parameters/data to
Job
s by placing contents into theJobDataMap
on theTrigger
.- Author:
- James House
- See Also:
TriggerBuilder
,JobDataMap
,JobExecutionContext
,TriggerUtils
,SimpleTrigger
,CronTrigger
,CalendarIntervalTrigger
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
Trigger.CompletedExecutionInstruction
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
Fields Modifier and Type Field Description static int
DEFAULT_PRIORITY
The default value for priority.static int
MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY
Instructs the
that theScheduler
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
that upon a mis-fire situation, theScheduler
updateAfterMisfire()
method will be called on theTrigger
to determine the mis-fire instruction, which logic will be trigger-implementation-dependent.static long
serialVersionUID
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description int
compareTo(Trigger other)
Compare the next fire time of thisTrigger
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
associated with this Trigger.Calendar
java.lang.String
getDescription()
Return the description given to theTrigger
instance by its creator (if any).java.util.Date
getEndTime()
Get the time at which theTrigger
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 theTrigger
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 theTrigger
will fire, after the given time.JobDataMap
getJobDataMap()
Get theJobDataMap
that is associated with theTrigger
.JobKey
getJobKey()
TriggerKey
getKey()
int
getMisfireInstruction()
Get the instruction theScheduler
should be given for handling misfire situations for thisTrigger
- the concreteTrigger
type that you are using will have defined a set of additionalMISFIRE_INSTRUCTION_XXX
constants that may be set as this property's value.java.util.Date
getNextFireTime()
Returns the next time at which theTrigger
is scheduled to fire.java.util.Date
getPreviousFireTime()
Returns the previous time at which theTrigger
fired.int
getPriority()
The priority of aTrigger
acts as a tiebreaker such that if twoTrigger
s 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 aScheduleBuilder
that is configured to produce a schedule identical to this trigger's schedule.java.util.Date
getStartTime()
Get the time at which theTrigger
should occur.TriggerBuilder<? extends Trigger>
getTriggerBuilder()
Get aTriggerBuilder
that is configured to produce aTrigger
identical to this one.boolean
mayFireAgain()
Used by the
to determine whether or not it is possible for thisScheduler
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
that upon a mis-fire situation, theScheduler
updateAfterMisfire()
method will be called on theTrigger
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
updateAfterMisfire()
method on the particularTrigger
implementation you are using.- See Also:
- Constant Field Values
-
MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY
static final int MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY
Instructs the
that theScheduler
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 theTrigger
instance by its creator (if any).- Returns:
- null if no description was set.
-
getCalendarName
java.lang.String getCalendarName()
Get the name of the
associated with this Trigger.Calendar
- Returns:
null
if there is no associated Calendar.
-
getJobDataMap
JobDataMap getJobDataMap()
Get theJobDataMap
that is associated with theTrigger
.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 aTrigger
acts as a tiebreaker such that if twoTrigger
s 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()
-
getStartTime
java.util.Date getStartTime()
Get the time at which theTrigger
should occur.
-
getEndTime
java.util.Date getEndTime()
Get the time at which theTrigger
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 theTrigger
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.
-
getPreviousFireTime
java.util.Date getPreviousFireTime()
Returns the previous time at which theTrigger
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 theTrigger
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 theTrigger
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 theScheduler
should be given for handling misfire situations for thisTrigger
- the concreteTrigger
type that you are using will have defined a set of additionalMISFIRE_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
,SimpleTrigger
,CronTrigger
-
getTriggerBuilder
TriggerBuilder<? extends Trigger> getTriggerBuilder()
Get aTriggerBuilder
that is configured to produce aTrigger
identical to this one.- See Also:
getScheduleBuilder()
-
getScheduleBuilder
ScheduleBuilder<? extends Trigger> getScheduleBuilder()
Get aScheduleBuilder
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 classjava.lang.Object
- Returns:
- true if the key of this Trigger equals that of the given Trigger.
-
-