public interface ICalendarIntervalTrigger extends ITrigger
ITrigger that is used to fire a
IJobDetail based upon repeating
calendar time intervals.
The trigger will fire every N (see getRepeatInterval() ) units of
calendar time (see getRepeatIntervalUnit()) as specified in the
trigger's definition. This trigger can achieve schedules that are not
possible with ISimpleTrigger (e.g because months are not a fixed
number of seconds) or ICronTrigger (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.
TriggerBuilder,
CalendarIntervalScheduleBuilder,
SimpleScheduleBuilder,
CronScheduleBuilderITrigger.ECompletedExecutionInstruction, ITrigger.EMisfireInstruction, ITrigger.ETriggerStateDEFAULT_PRIORITY| Modifier and Type | Method and Description |
|---|---|
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. |
EIntervalUnit |
getRepeatIntervalUnit() |
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.
|
TriggerBuilder<? extends ICalendarIntervalTrigger> |
getTriggerBuilder()
Get a
TriggerBuilder that is configured to produce a
Trigger identical to this one. |
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.
|
compareTo, equals, getCalendarName, getClone, getDescription, getEndTime, getFinalFireTime, getFireTimeAfter, getJobDataMap, getJobKey, getKey, getMisfireInstruction, getNextFireTime, getPreviousFireTime, getPriority, getScheduleBuilder, getStartTime, mayFireAgainEIntervalUnit getRepeatIntervalUnit()
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.
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.
If null, the system default TimeZone will be used.
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.
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).
TriggerBuilder<? extends ICalendarIntervalTrigger> getTriggerBuilder()
ITriggerTriggerBuilder that is configured to produce a
Trigger identical to this one.getTriggerBuilder in interface ITriggerITrigger.getScheduleBuilder()Copyright © 2016–2021 Philip Helger. All rights reserved.