Class SimpleTriggerImpl
- java.lang.Object
-
- org.quartz.impl.triggers.AbstractTrigger<SimpleTrigger>
-
- org.quartz.impl.triggers.SimpleTriggerImpl
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,java.lang.Comparable<Trigger>,CoreTrigger,SimpleTrigger,MutableTrigger,OperableTrigger,Trigger
public class SimpleTriggerImpl extends AbstractTrigger<SimpleTrigger> implements SimpleTrigger, CoreTrigger
A concrete
that is used to fire aTriggerat a given moment in time, and optionally repeated at a specified interval.JobDetail- Author:
- James House, contributions by Lieven Govaerts of Ebitec Nv, Belgium.
- See Also:
Trigger,CronTrigger,TriggerUtils, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.quartz.Trigger
Trigger.CompletedExecutionInstruction, Trigger.TriggerState, Trigger.TriggerTimeComparator
-
-
Field Summary
-
Fields inherited from interface org.quartz.SimpleTrigger
MISFIRE_INSTRUCTION_FIRE_NOW, MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT, MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT, MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT, MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT, REPEAT_INDEFINITELY
-
Fields inherited from interface org.quartz.Trigger
DEFAULT_PRIORITY, MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY, MISFIRE_INSTRUCTION_SMART_POLICY
-
-
Constructor Summary
Constructors Constructor Description SimpleTriggerImpl()Create aSimpleTriggerwith no settings.SimpleTriggerImpl(java.lang.String name)Deprecated.use a TriggerBuilder insteadSimpleTriggerImpl(java.lang.String name, int repeatCount, long repeatInterval)Deprecated.use a TriggerBuilder insteadSimpleTriggerImpl(java.lang.String name, java.lang.String group)Deprecated.use a TriggerBuilder insteadSimpleTriggerImpl(java.lang.String name, java.lang.String group, int repeatCount, long repeatInterval)Deprecated.use a TriggerBuilder insteadSimpleTriggerImpl(java.lang.String name, java.lang.String group, java.lang.String jobName, java.lang.String jobGroup, java.util.Date startTime, java.util.Date endTime, int repeatCount, long repeatInterval)Deprecated.use a TriggerBuilder insteadSimpleTriggerImpl(java.lang.String name, java.lang.String group, java.util.Date startTime)Deprecated.use a TriggerBuilder insteadSimpleTriggerImpl(java.lang.String name, java.lang.String group, java.util.Date startTime, java.util.Date endTime, int repeatCount, long repeatInterval)Deprecated.use a TriggerBuilder insteadSimpleTriggerImpl(java.lang.String name, java.util.Date startTime)Deprecated.use a TriggerBuilder insteadSimpleTriggerImpl(java.lang.String name, java.util.Date startTime, java.util.Date endTime, int repeatCount, long repeatInterval)Deprecated.use a TriggerBuilder instead
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.DatecomputeFirstFireTime(Calendar calendar)Called by the scheduler at the time aTriggeris first added to the scheduler, in order to have theTriggercompute its first fire time, based on any associated calendar.intcomputeNumTimesFiredBetween(java.util.Date start, java.util.Date end)java.util.DategetEndTime()Get the time at which theSimpleTriggershould quit repeating - even if repeatCount isn't yet satisfied.java.util.DategetFinalFireTime()Returns the final time at which theSimpleTriggerwill fire, if repeatCount is REPEAT_INDEFINITELY, null will be returned.java.util.DategetFireTimeAfter(java.util.Date afterTime)Returns the next time at which theSimpleTriggerwill fire, after the given time.java.util.DategetFireTimeBefore(java.util.Date end)Returns the last time at which theSimpleTriggerwill fire, before the given time.java.util.DategetNextFireTime()Returns the next time at which theTriggeris scheduled to fire.java.util.DategetPreviousFireTime()Returns the previous time at which theSimpleTriggerfired.intgetRepeatCount()Get the number of times theSimpleTriggershould repeat, after the initial firing, after which it will be automatically deleted.longgetRepeatInterval()Get the time interval (in milliseconds) at which theSimpleTriggershould repeat.ScheduleBuilder<SimpleTrigger>getScheduleBuilder()Get aScheduleBuilderthat is configured to produce a schedule identical to this trigger's schedule.java.util.DategetStartTime()Get the time at which theSimpleTriggershould occur.intgetTimesTriggered()Get the number of times theSimpleTriggerhas already fired.booleanhasAdditionalProperties()Used by extensions of SimpleTrigger to imply that there are additional properties, specifically so that extensions can choose whether to be stored as a serialized blob, or as a flattened SimpleTrigger table.booleanmayFireAgain()Determines whether or not theSimpleTriggerwill occur again.voidsetEndTime(java.util.Date endTime)Set the time at which theSimpleTriggershould quit repeating (and be automatically deleted).voidsetNextFireTime(java.util.Date nextFireTime)Set the next time at which theSimpleTriggershould fire.voidsetPreviousFireTime(java.util.Date previousFireTime)Set the previous time at which theSimpleTriggerfired.voidsetRepeatCount(int repeatCount)Set the number of time theSimpleTriggershould repeat, after which it will be automatically deleted.voidsetRepeatInterval(long repeatInterval)Set the time interval (in milliseconds) at which theSimpleTriggershould repeat.voidsetStartTime(java.util.Date startTime)Set the time at which theSimpleTriggershould occur.voidsetTimesTriggered(int timesTriggered)Set the number of times theSimpleTriggerhas already fired.voidtriggered(Calendar calendar)Called when thehas decided to 'fire' the trigger (execute the associatedSchedulerJob), in order to give theTriggera chance to update itself for its next triggering (if any).voidupdateAfterMisfire(Calendar cal)Updates theSimpleTrigger's state based on the MISFIRE_INSTRUCTION_XXX that was selected when theSimpleTriggerwas created.voidupdateWithNewCalendar(Calendar calendar, long misfireThreshold)This method should not be used by the Quartz client.voidvalidate()Validates whether the properties of theJobDetailare valid for submission into aScheduler.protected booleanvalidateMisfireInstruction(int misfireInstruction)-
Methods inherited from class org.quartz.impl.triggers.AbstractTrigger
clone, compareTo, equals, executionComplete, getCalendarName, getDescription, getFireInstanceId, getFullJobName, getFullName, getGroup, getJobDataMap, getJobGroup, getJobKey, getJobName, getKey, getMisfireInstruction, getName, getPriority, getTriggerBuilder, hashCode, setCalendarName, setDescription, setFireInstanceId, setGroup, setJobDataMap, setJobGroup, setJobKey, setJobName, setKey, setMisfireInstruction, setName, setPriority, toString
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.quartz.SimpleTrigger
getTriggerBuilder
-
Methods inherited from interface org.quartz.Trigger
compareTo, equals, getCalendarName, getDescription, getJobDataMap, getJobKey, getKey, getMisfireInstruction, getPriority
-
-
-
-
Constructor Detail
-
SimpleTriggerImpl
public SimpleTriggerImpl()
Create a
SimpleTriggerwith no settings.
-
SimpleTriggerImpl
@Deprecated public SimpleTriggerImpl(java.lang.String name)
Deprecated.use a TriggerBuilder insteadCreate a
SimpleTriggerthat will occur immediately, and not repeat.
-
SimpleTriggerImpl
@Deprecated public SimpleTriggerImpl(java.lang.String name, java.lang.String group)Deprecated.use a TriggerBuilder insteadCreate a
SimpleTriggerthat will occur immediately, and not repeat.
-
SimpleTriggerImpl
@Deprecated public SimpleTriggerImpl(java.lang.String name, int repeatCount, long repeatInterval)Deprecated.use a TriggerBuilder insteadCreate a
SimpleTriggerthat will occur immediately, and repeat at the given interval the given number of times.
-
SimpleTriggerImpl
@Deprecated public SimpleTriggerImpl(java.lang.String name, java.lang.String group, int repeatCount, long repeatInterval)Deprecated.use a TriggerBuilder insteadCreate a
SimpleTriggerthat will occur immediately, and repeat at the given interval the given number of times.
-
SimpleTriggerImpl
@Deprecated public SimpleTriggerImpl(java.lang.String name, java.util.Date startTime)Deprecated.use a TriggerBuilder insteadCreate a
SimpleTriggerthat will occur at the given time, and not repeat.
-
SimpleTriggerImpl
@Deprecated public SimpleTriggerImpl(java.lang.String name, java.lang.String group, java.util.Date startTime)Deprecated.use a TriggerBuilder insteadCreate a
SimpleTriggerthat will occur at the given time, and not repeat.
-
SimpleTriggerImpl
@Deprecated public SimpleTriggerImpl(java.lang.String name, java.util.Date startTime, java.util.Date endTime, int repeatCount, long repeatInterval)Deprecated.use a TriggerBuilder insteadCreate a
SimpleTriggerthat will occur at the given time, and repeat at the given interval the given number of times, or until the given end time.- Parameters:
startTime- ADateset to the time for theTriggerto fire.endTime- ADateset to the time for theTriggerto quit repeat firing.repeatCount- The number of times for theTriggerto repeat firing, useSimpleTrigger.REPEAT_INDEFINITELYfor unlimited times.repeatInterval- The number of milliseconds to pause between the repeat firing.
-
SimpleTriggerImpl
@Deprecated public SimpleTriggerImpl(java.lang.String name, java.lang.String group, java.util.Date startTime, java.util.Date endTime, int repeatCount, long repeatInterval)Deprecated.use a TriggerBuilder insteadCreate a
SimpleTriggerthat will occur at the given time, and repeat at the given interval the given number of times, or until the given end time.- Parameters:
startTime- ADateset to the time for theTriggerto fire.endTime- ADateset to the time for theTriggerto quit repeat firing.repeatCount- The number of times for theTriggerto repeat firing, useSimpleTrigger.REPEAT_INDEFINITELYfor unlimited times.repeatInterval- The number of milliseconds to pause between the repeat firing.
-
SimpleTriggerImpl
@Deprecated public SimpleTriggerImpl(java.lang.String name, java.lang.String group, java.lang.String jobName, java.lang.String jobGroup, java.util.Date startTime, java.util.Date endTime, int repeatCount, long repeatInterval)Deprecated.use a TriggerBuilder insteadCreate a
SimpleTriggerthat will occur at the given time, fire the identifiedJoband repeat at the given interval the given number of times, or until the given end time.- Parameters:
startTime- ADateset to the time for theTriggerto fire.endTime- ADateset to the time for theTriggerto quit repeat firing.repeatCount- The number of times for theTriggerto repeat firing, useSimpleTrigger.REPEAT_INDEFINITELYfor unlimited times.repeatInterval- The number of milliseconds to pause between the repeat firing.
-
-
Method Detail
-
getStartTime
public java.util.Date getStartTime()
Get the time at which the
SimpleTriggershould occur.- Specified by:
getStartTimein interfaceTrigger
-
setStartTime
public void setStartTime(java.util.Date startTime)
Set the time at which the
SimpleTriggershould occur.- Specified by:
setStartTimein interfaceMutableTrigger- Throws:
java.lang.IllegalArgumentException- if startTime isnull.
-
getEndTime
public java.util.Date getEndTime()
Get the time at which the
SimpleTriggershould quit repeating - even if repeatCount isn't yet satisfied.- Specified by:
getEndTimein interfaceTrigger- See Also:
getFinalFireTime()
-
setEndTime
public void setEndTime(java.util.Date endTime)
Set the time at which the
SimpleTriggershould quit repeating (and be automatically deleted).- Specified by:
setEndTimein interfaceMutableTrigger- Throws:
java.lang.IllegalArgumentException- if endTime is before start time.- See Also:
TriggerUtils.computeEndTimeToAllowParticularNumberOfFirings(org.quartz.spi.OperableTrigger, org.quartz.Calendar, int)
-
getRepeatCount
public int getRepeatCount()
Description copied from interface:SimpleTriggerGet the number of times theSimpleTriggershould repeat, after the initial firing, after which it will be automatically deleted. The total number of firings will be this number + 1.- Specified by:
getRepeatCountin interfaceSimpleTrigger- Returns:
- the number of times the trigger should repeat after the initial firing.
- See Also:
SimpleTrigger.REPEAT_INDEFINITELY
-
setRepeatCount
public void setRepeatCount(int repeatCount)
Set the number of time the
SimpleTriggershould repeat, after which it will be automatically deleted.- Throws:
java.lang.IllegalArgumentException- if repeatCount is < 0- See Also:
SimpleTrigger.REPEAT_INDEFINITELY
-
getRepeatInterval
public long getRepeatInterval()
Description copied from interface:SimpleTriggerGet the time interval (in milliseconds) at which the
SimpleTriggershould repeat.- Specified by:
getRepeatIntervalin interfaceSimpleTrigger
-
setRepeatInterval
public void setRepeatInterval(long repeatInterval)
Set the time interval (in milliseconds) at which the
SimpleTriggershould repeat.- Throws:
java.lang.IllegalArgumentException- if repeatInterval is < 0
-
getTimesTriggered
public int getTimesTriggered()
Get the number of times the
SimpleTriggerhas already fired.- Specified by:
getTimesTriggeredin interfaceSimpleTrigger
-
setTimesTriggered
public void setTimesTriggered(int timesTriggered)
Set the number of times the
SimpleTriggerhas already fired.
-
validateMisfireInstruction
protected boolean validateMisfireInstruction(int misfireInstruction)
- Specified by:
validateMisfireInstructionin classAbstractTrigger<SimpleTrigger>
-
updateAfterMisfire
public void updateAfterMisfire(Calendar cal)
Updates the
SimpleTrigger's state based on the MISFIRE_INSTRUCTION_XXX that was selected when theSimpleTriggerwas created.If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY, then the following scheme will be used:
- If the Repeat Count is
0, then the instruction will be interpreted asMISFIRE_INSTRUCTION_FIRE_NOW. - If the Repeat Count is
REPEAT_INDEFINITELY, then the instruction will be interpreted asMISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT. WARNING: using MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT with a trigger that has a non-null end-time may cause the trigger to never fire again if the end-time arrived during the misfire time span. - If the Repeat Count is
> 0, then the instruction will be interpreted asMISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT.
- Specified by:
updateAfterMisfirein interfaceOperableTrigger
- If the Repeat Count is
-
triggered
public void triggered(Calendar calendar)
Called when the
has decided to 'fire' the trigger (execute the associatedSchedulerJob), in order to give theTriggera chance to update itself for its next triggering (if any).- Specified by:
triggeredin interfaceOperableTrigger- See Also:
AbstractTrigger.executionComplete(JobExecutionContext, JobExecutionException)
-
updateWithNewCalendar
public void updateWithNewCalendar(Calendar calendar, long misfireThreshold)
Description copied from interface:OperableTriggerThis method should not be used by the Quartz client.
To be implemented by the concrete class.
The implementation should update the
Trigger's state based on the given new version of the associatedCalendar(the state should be updated so that it's next fire time is appropriate given the Calendar's new settings).- Specified by:
updateWithNewCalendarin interfaceOperableTrigger- See Also:
OperableTrigger.updateWithNewCalendar(org.quartz.Calendar, long)
-
computeFirstFireTime
public java.util.Date computeFirstFireTime(Calendar calendar)
Called by the scheduler at the time a
Triggeris first added to the scheduler, in order to have theTriggercompute its first fire time, based on any associated calendar.After this method has been called,
getNextFireTime()should return a valid answer.- Specified by:
computeFirstFireTimein interfaceOperableTrigger- Returns:
- the first time at which the
Triggerwill be fired by the scheduler, which is also the same valuegetNextFireTime()will return (until after the first firing of theTrigger).
-
getNextFireTime
public java.util.Date getNextFireTime()
Returns the next time at which the
Triggeris scheduled to fire. If the trigger will not fire again,nullwill 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
Triggerhas been added to the scheduler.- Specified by:
getNextFireTimein interfaceTrigger- See Also:
TriggerUtils.computeFireTimesBetween(org.quartz.spi.OperableTrigger, org.quartz.Calendar, java.util.Date, java.util.Date)
-
getPreviousFireTime
public java.util.Date getPreviousFireTime()
Returns the previous time at which the
SimpleTriggerfired. If the trigger has not yet fired,nullwill be returned.- Specified by:
getPreviousFireTimein interfaceTrigger
-
setNextFireTime
public void setNextFireTime(java.util.Date nextFireTime)
Set the next time at which the
SimpleTriggershould fire.This method should not be invoked by client code.
- Specified by:
setNextFireTimein interfaceOperableTrigger
-
setPreviousFireTime
public void setPreviousFireTime(java.util.Date previousFireTime)
Set the previous time at which the
SimpleTriggerfired.This method should not be invoked by client code.
- Specified by:
setPreviousFireTimein interfaceOperableTrigger
-
getFireTimeAfter
public java.util.Date getFireTimeAfter(java.util.Date afterTime)
Returns the next time at which the
SimpleTriggerwill fire, after the given time. If the trigger will not fire after the given time,nullwill be returned.- Specified by:
getFireTimeAfterin interfaceTrigger
-
getFireTimeBefore
public java.util.Date getFireTimeBefore(java.util.Date end)
Returns the last time at which the
SimpleTriggerwill fire, before the given time. If the trigger will not fire before the given time,nullwill be returned.
-
computeNumTimesFiredBetween
public int computeNumTimesFiredBetween(java.util.Date start, java.util.Date end)
-
getFinalFireTime
public java.util.Date getFinalFireTime()
Returns the final time at which the
SimpleTriggerwill fire, if repeatCount is REPEAT_INDEFINITELY, null will be returned.Note that the return time may be in the past.
- Specified by:
getFinalFireTimein interfaceTrigger
-
mayFireAgain
public boolean mayFireAgain()
Determines whether or not the
SimpleTriggerwill occur again.- Specified by:
mayFireAgainin interfaceTrigger
-
validate
public void validate() throws SchedulerExceptionValidates whether the properties of the
JobDetailare valid for submission into aScheduler.- Specified by:
validatein interfaceOperableTrigger- Overrides:
validatein classAbstractTrigger<SimpleTrigger>- Throws:
java.lang.IllegalStateException- if a required property (such as Name, Group, Class) is not set.SchedulerException
-
hasAdditionalProperties
public boolean hasAdditionalProperties()
Used by extensions of SimpleTrigger to imply that there are additional properties, specifically so that extensions can choose whether to be stored as a serialized blob, or as a flattened SimpleTrigger table.- Specified by:
hasAdditionalPropertiesin interfaceCoreTrigger
-
getScheduleBuilder
public ScheduleBuilder<SimpleTrigger> getScheduleBuilder()
Get aScheduleBuilderthat is configured to produce a schedule identical to this trigger's schedule.- Specified by:
getScheduleBuilderin interfaceTrigger- Specified by:
getScheduleBuilderin classAbstractTrigger<SimpleTrigger>- See Also:
AbstractTrigger.getTriggerBuilder()
-
-