|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.quartz.impl.triggers.AbstractTrigger<CalendarIntervalTrigger>
org.quartz.impl.triggers.CalendarIntervalTriggerImpl
public class CalendarIntervalTriggerImpl
A concrete that is used to fire a Trigger
based upon repeating calendar time intervals.JobDetail
The trigger will fire every N (see setRepeatInterval(int) ) units of calendar time
(see setRepeatIntervalUnit(org.quartz.DateBuilder.IntervalUnit)) as specified in the trigger's definition.
This trigger can achieve schedules that are not possible with SimpleTrigger (e.g
because months are not a fixed number of seconds) or CronTrigger (e.g. because
"every 5 months" is not an even divisor of 12).
If you use an interval unit of MONTH then care should be taken when setting
a startTime value that is on a day near the end of the month. For example,
if you choose a start time that occurs on January 31st, and have a trigger with unit
MONTH and interval 1, then the next fire time will be February 28th,
and the next time after that will be March 28th - and essentially each subsequent firing will
occur on the 28th of the month, even if a 31st day exists. If you want a trigger that always
fires on the last day of the month - regardless of the number of days in the month,
you should use CronTrigger.
Trigger,
CronTrigger,
SimpleTrigger,
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.CalendarIntervalTrigger |
|---|
MISFIRE_INSTRUCTION_DO_NOTHING, MISFIRE_INSTRUCTION_FIRE_ONCE_NOW |
| Fields inherited from interface org.quartz.Trigger |
|---|
DEFAULT_PRIORITY, MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY, MISFIRE_INSTRUCTION_SMART_POLICY |
| Constructor Summary | |
|---|---|
CalendarIntervalTriggerImpl()
Create a DateIntervalTrigger with no settings. |
|
CalendarIntervalTriggerImpl(String name,
DateBuilder.IntervalUnit intervalUnit,
int repeatInterval)
Create a DateIntervalTrigger that will occur immediately, and
repeat at the the given interval. |
|
CalendarIntervalTriggerImpl(String name,
Date startTime,
Date endTime,
DateBuilder.IntervalUnit intervalUnit,
int repeatInterval)
Create a DateIntervalTrigger that will occur at the given time,
and repeat at the the given interval until the given end time. |
|
CalendarIntervalTriggerImpl(String name,
String group,
DateBuilder.IntervalUnit intervalUnit,
int repeatInterval)
Create a DateIntervalTrigger that will occur immediately, and
repeat at the the given interval. |
|
CalendarIntervalTriggerImpl(String name,
String group,
Date startTime,
Date endTime,
DateBuilder.IntervalUnit intervalUnit,
int repeatInterval)
Create a DateIntervalTrigger that will occur at the given time,
and repeat at the the given interval until the given end time. |
|
CalendarIntervalTriggerImpl(String name,
String group,
String jobName,
String jobGroup,
Date startTime,
Date endTime,
DateBuilder.IntervalUnit intervalUnit,
int repeatInterval)
Create a DateIntervalTrigger that will occur at the given time,
fire the identified Job and repeat at the the given
interval until the given end time. |
|
| Method Summary | |
|---|---|
Date |
computeFirstFireTime(Calendar calendar)
Called by the scheduler at the time a Trigger is first
added to the scheduler, in order to have the Trigger
compute its first fire time, based on any associated calendar. |
Date |
getEndTime()
Get the time at which the DateIntervalTrigger should quit
repeating. |
Date |
getFinalFireTime()
Returns the final time at which the DateIntervalTrigger will
fire, if there is no end time set, null will be returned. |
Date |
getFireTimeAfter(Date afterTime)
Returns the next time at which the DateIntervalTrigger will
fire, after the given time. |
protected Date |
getFireTimeAfter(Date afterTime,
boolean ignoreEndTime)
|
Date |
getNextFireTime()
Returns the next time at which the Trigger is scheduled to fire. |
Date |
getPreviousFireTime()
Returns the previous time at which the DateIntervalTrigger
fired. |
int |
getRepeatInterval()
Get the the time interval that will be added to the DateIntervalTrigger's
fire time (in the set repeat interval unit) in order to calculate the time of the
next trigger repeat. |
DateBuilder.IntervalUnit |
getRepeatIntervalUnit()
Get the interval unit - the time unit on with the interval applies. |
ScheduleBuilder<CalendarIntervalTrigger> |
getScheduleBuilder()
Get a ScheduleBuilder that is configured to produce a
schedule identical to this trigger's schedule. |
Date |
getStartTime()
Get the time at which the DateIntervalTrigger should occur. |
int |
getTimesTriggered()
Get the number of times the DateIntervalTrigger has already
fired. |
TimeZone |
getTimeZone()
Gets the time zone within which time calculations related to this trigger will be performed. |
boolean |
hasAdditionalProperties()
|
boolean |
isPreserveHourOfDayAcrossDaylightSavings()
If intervals are a day or greater, this property (set to true) will cause the firing of the trigger to always occur at the same time of day, (the time of day of the startTime) regardless of daylight saving time transitions. |
boolean |
isSkipDayIfHourDoesNotExist()
If intervals are a day or greater, and preserveHourOfDayAcrossDaylightSavings property is set to true, and the hour of the day does not exist on a given day for which the trigger would fire, the day will be skipped and the trigger advanced a second interval if this property is set to true. |
boolean |
mayFireAgain()
Determines whether or not the DateIntervalTrigger will occur
again. |
void |
setEndTime(Date endTime)
Set the time at which the DateIntervalTrigger should quit
repeating (and be automatically deleted). |
void |
setNextFireTime(Date nextFireTime)
Set the next time at which the DateIntervalTrigger should fire. |
void |
setPreserveHourOfDayAcrossDaylightSavings(boolean preserveHourOfDayAcrossDaylightSavings)
|
void |
setPreviousFireTime(Date previousFireTime)
Set the previous time at which the DateIntervalTrigger fired. |
void |
setRepeatInterval(int repeatInterval)
set the the time interval that will be added to the DateIntervalTrigger's
fire time (in the set repeat interval unit) in order to calculate the time of the
next trigger repeat. |
void |
setRepeatIntervalUnit(DateBuilder.IntervalUnit intervalUnit)
Set the interval unit - the time unit on with the interval applies. |
void |
setSkipDayIfHourDoesNotExist(boolean skipDayIfHourDoesNotExist)
|
void |
setStartTime(Date startTime)
Set the time at which the DateIntervalTrigger should occur. |
void |
setTimesTriggered(int timesTriggered)
Set the number of times the DateIntervalTrigger has already
fired. |
void |
setTimeZone(TimeZone timeZone)
Sets the time zone within which time calculations related to this trigger will be performed. |
void |
triggered(Calendar calendar)
Called when the has decided to 'fire'
the trigger (execute the associated Job), in order to
give the Trigger a chance to update itself for its next
triggering (if any). |
void |
updateAfterMisfire(Calendar cal)
Updates the DateIntervalTrigger's state based on the
MISFIRE_INSTRUCTION_XXX that was selected when the DateIntervalTrigger
was created. |
void |
updateWithNewCalendar(Calendar calendar,
long misfireThreshold)
This method should not be used by the Quartz client. |
void |
validate()
Validates whether the properties of the JobDetail are
valid for submission into a Scheduler. |
protected boolean |
validateMisfireInstruction(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.CalendarIntervalTrigger |
|---|
getTriggerBuilder |
| Methods inherited from interface org.quartz.Trigger |
|---|
compareTo, equals, getCalendarName, getDescription, getJobDataMap, getJobKey, getKey, getMisfireInstruction, getPriority |
| Constructor Detail |
|---|
public CalendarIntervalTriggerImpl()
Create a DateIntervalTrigger with no settings.
public CalendarIntervalTriggerImpl(String name,
DateBuilder.IntervalUnit intervalUnit,
int repeatInterval)
Create a DateIntervalTrigger that will occur immediately, and
repeat at the the given interval.
public CalendarIntervalTriggerImpl(String name,
String group,
DateBuilder.IntervalUnit intervalUnit,
int repeatInterval)
Create a DateIntervalTrigger that will occur immediately, and
repeat at the the given interval.
public CalendarIntervalTriggerImpl(String name,
Date startTime,
Date endTime,
DateBuilder.IntervalUnit intervalUnit,
int repeatInterval)
Create a DateIntervalTrigger that will occur at the given time,
and repeat at the the given interval until the given end time.
startTime - A Date set to the time for the Trigger
to fire.endTime - A Date set to the time for the Trigger
to quit repeat firing.intervalUnit - The repeat interval unit (minutes, days, months, etc).repeatInterval - The number of milliseconds to pause between the repeat firing.
public CalendarIntervalTriggerImpl(String name,
String group,
Date startTime,
Date endTime,
DateBuilder.IntervalUnit intervalUnit,
int repeatInterval)
Create a DateIntervalTrigger that will occur at the given time,
and repeat at the the given interval until the given end time.
startTime - A Date set to the time for the Trigger
to fire.endTime - A Date set to the time for the Trigger
to quit repeat firing.intervalUnit - The repeat interval unit (minutes, days, months, etc).repeatInterval - The number of milliseconds to pause between the repeat firing.
public CalendarIntervalTriggerImpl(String name,
String group,
String jobName,
String jobGroup,
Date startTime,
Date endTime,
DateBuilder.IntervalUnit intervalUnit,
int repeatInterval)
Create a DateIntervalTrigger that will occur at the given time,
fire the identified Job and repeat at the the given
interval until the given end time.
startTime - A Date set to the time for the Trigger
to fire.endTime - A Date set to the time for the Trigger
to quit repeat firing.intervalUnit - The repeat interval unit (minutes, days, months, etc).repeatInterval - The number of milliseconds to pause between the repeat firing.| Method Detail |
|---|
public Date getStartTime()
Get the time at which the DateIntervalTrigger should occur.
getStartTime in interface TriggergetStartTime in class AbstractTrigger<CalendarIntervalTrigger>public void setStartTime(Date startTime)
Set the time at which the DateIntervalTrigger should occur.
setStartTime in interface MutableTriggersetStartTime in class AbstractTrigger<CalendarIntervalTrigger>IllegalArgumentException - if startTime is null.public Date getEndTime()
Get the time at which the DateIntervalTrigger should quit
repeating.
getEndTime in interface TriggergetEndTime in class AbstractTrigger<CalendarIntervalTrigger>getFinalFireTime()public void setEndTime(Date endTime)
Set the time at which the DateIntervalTrigger should quit
repeating (and be automatically deleted).
setEndTime in interface MutableTriggersetEndTime in class AbstractTrigger<CalendarIntervalTrigger>IllegalArgumentException - if endTime is before start time.TriggerUtils.computeEndTimeToAllowParticularNumberOfFirings(org.quartz.spi.OperableTrigger, org.quartz.Calendar, int)public DateBuilder.IntervalUnit getRepeatIntervalUnit()
CalendarIntervalTriggerGet the interval unit - the time unit on with the interval applies.
getRepeatIntervalUnit in interface CalendarIntervalTriggerpublic void setRepeatIntervalUnit(DateBuilder.IntervalUnit intervalUnit)
Set the interval unit - the time unit on with the interval applies.
public int getRepeatInterval()
CalendarIntervalTrigger
Get the the time interval that will be added to the DateIntervalTrigger's
fire time (in the set repeat interval unit) in order to calculate the time of the
next trigger repeat.
getRepeatInterval in interface CalendarIntervalTriggerpublic void setRepeatInterval(int repeatInterval)
set the the time interval that will be added to the DateIntervalTrigger's
fire time (in the set repeat interval unit) in order to calculate the time of the
next trigger repeat.
IllegalArgumentException - if repeatInterval is < 1public TimeZone getTimeZone()
CalendarIntervalTriggerGets the time zone within which time calculations related to this trigger will be performed.
If null, the system default TimeZone will be used.
getTimeZone in interface CalendarIntervalTriggerpublic void setTimeZone(TimeZone timeZone)
Sets the time zone within which time calculations related to this trigger will be performed.
timeZone - the desired TimeZone, or null for the system default.public boolean isPreserveHourOfDayAcrossDaylightSavings()
For example, without the property set, your trigger may have a start time of 9:00 am on March 1st, and a repeat interval of 2 days. But after the daylight saving transition occurs, the trigger may start firing at 8:00 am every other day.
If however, the time of day does not exist on a given day to fire (e.g. 2:00 am in the United States on the days of daylight saving transition), the trigger will go ahead and fire one hour off on that day, and then resume the normal hour on other days. If you wish for the trigger to never fire at the "wrong" hour, then you should set the property skipDayIfHourDoesNotExist.
isPreserveHourOfDayAcrossDaylightSavings in interface CalendarIntervalTriggerisSkipDayIfHourDoesNotExist(),
getStartTime(),
getTimeZone()public void setPreserveHourOfDayAcrossDaylightSavings(boolean preserveHourOfDayAcrossDaylightSavings)
public boolean isSkipDayIfHourDoesNotExist()
CAUTION! If you enable this property, and your hour of day happens to be that of daylight savings transition (e.g. 2:00 am in the United States) and the trigger's interval would have had the trigger fire on that day, then you may actually completely miss a firing on the day of transition if that hour of day does not exist on that day! In such a case the next fire time of the trigger will be computed as double (if the interval is 2 days, then a span of 4 days between firings will occur).
isSkipDayIfHourDoesNotExist in interface CalendarIntervalTriggerisPreserveHourOfDayAcrossDaylightSavings()public void setSkipDayIfHourDoesNotExist(boolean skipDayIfHourDoesNotExist)
public int getTimesTriggered()
CalendarIntervalTrigger
Get the number of times the DateIntervalTrigger has already
fired.
getTimesTriggered in interface CalendarIntervalTriggerpublic void setTimesTriggered(int timesTriggered)
Set the number of times the DateIntervalTrigger has already
fired.
protected boolean validateMisfireInstruction(int misfireInstruction)
validateMisfireInstruction in class AbstractTrigger<CalendarIntervalTrigger>public void updateAfterMisfire(Calendar cal)
Updates the DateIntervalTrigger's state based on the
MISFIRE_INSTRUCTION_XXX that was selected when the DateIntervalTrigger
was created.
If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY,
then the following scheme will be used:
MISFIRE_INSTRUCTION_FIRE_ONCE_NOW
updateAfterMisfire in interface OperableTriggerupdateAfterMisfire in class AbstractTrigger<CalendarIntervalTrigger>public void triggered(Calendar calendar)
Called when the has decided to 'fire'
the trigger (execute the associated SchedulerJob), in order to
give the Trigger a chance to update itself for its next
triggering (if any).
triggered in interface OperableTriggertriggered in class AbstractTrigger<CalendarIntervalTrigger>AbstractTrigger.executionComplete(JobExecutionContext, JobExecutionException)
public void updateWithNewCalendar(Calendar calendar,
long misfireThreshold)
AbstractTriggerThis 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 associated Calendar
(the state should be updated so that it's next fire time is appropriate
given the Calendar's new settings).
updateWithNewCalendar in interface OperableTriggerupdateWithNewCalendar in class AbstractTrigger<CalendarIntervalTrigger>calendar - the modifying calendarOperableTrigger.updateWithNewCalendar(org.quartz.Calendar, long)public Date computeFirstFireTime(Calendar calendar)
Called by the scheduler at the time a Trigger is first
added to the scheduler, in order to have the Trigger
compute its first fire time, based on any associated calendar.
After this method has been called, getNextFireTime()
should return a valid answer.
computeFirstFireTime in interface OperableTriggercomputeFirstFireTime in class AbstractTrigger<CalendarIntervalTrigger>Trigger will be fired
by the scheduler, which is also the same value getNextFireTime()
will return (until after the first firing of the Trigger).
public 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.
getNextFireTime in interface TriggergetNextFireTime in class AbstractTrigger<CalendarIntervalTrigger>TriggerUtils.computeFireTimesBetween(org.quartz.spi.OperableTrigger, org.quartz.Calendar, java.util.Date, java.util.Date)public Date getPreviousFireTime()
Returns the previous time at which the DateIntervalTrigger
fired. If the trigger has not yet fired, null will be
returned.
getPreviousFireTime in interface TriggergetPreviousFireTime in class AbstractTrigger<CalendarIntervalTrigger>public void setNextFireTime(Date nextFireTime)
Set the next time at which the DateIntervalTrigger should fire.
This method should not be invoked by client code.
setNextFireTime in interface OperableTriggerpublic void setPreviousFireTime(Date previousFireTime)
Set the previous time at which the DateIntervalTrigger fired.
This method should not be invoked by client code.
setPreviousFireTime in interface OperableTriggerpublic Date getFireTimeAfter(Date afterTime)
Returns the next time at which the DateIntervalTrigger will
fire, after the given time. If the trigger will not fire after the given
time, null will be returned.
getFireTimeAfter in interface TriggergetFireTimeAfter in class AbstractTrigger<CalendarIntervalTrigger>
protected Date getFireTimeAfter(Date afterTime,
boolean ignoreEndTime)
public Date getFinalFireTime()
Returns the final time at which the DateIntervalTrigger will
fire, if there is no end time set, null will be returned.
Note that the return time may be in the past.
getFinalFireTime in interface TriggergetFinalFireTime in class AbstractTrigger<CalendarIntervalTrigger>public boolean mayFireAgain()
Determines whether or not the DateIntervalTrigger will occur
again.
mayFireAgain in interface TriggermayFireAgain in class AbstractTrigger<CalendarIntervalTrigger>
public void validate()
throws SchedulerException
Validates whether the properties of the JobDetail are
valid for submission into a Scheduler.
validate in interface OperableTriggervalidate in class AbstractTrigger<CalendarIntervalTrigger>IllegalStateException - if a required property (such as Name, Group, Class) is not
set.
SchedulerExceptionpublic ScheduleBuilder<CalendarIntervalTrigger> getScheduleBuilder()
ScheduleBuilder that is configured to produce a
schedule identical to this trigger's schedule.
getScheduleBuilder in interface TriggergetScheduleBuilder in class AbstractTrigger<CalendarIntervalTrigger>AbstractTrigger.getTriggerBuilder()public boolean hasAdditionalProperties()
hasAdditionalProperties in interface CoreTrigger
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||