ManagedScheduledExecutorService using any of the
schedule methods. Each method will run with unspecified context.
The methods can be made contextual through creating contextual
proxy objects using ContextService.
Each trigger instance will be invoked within the same process in which it was registered.
Example:
/**
* A trigger that runs on the hour, Mon-Fri from 8am-8pm Central US time.
*/
public class HourlyDuringBusinessHoursTrigger implements ZonedTrigger {
static final ZoneId ZONE = ZoneId.of("America/Chicago");
public ZoneId getZoneId() {
return ZONE;
}
public ZonedDateTime getNextRunTime(LastExecution lastExec, ZonedDateTime taskScheduledTime) {
ZonedDateTime prevTime = lastExec == null ? taskScheduledTime : lastExec.getRunEnd(ZONE);
ZonedDateTime nextTime = prevTime.truncatedTo(ChronoUnit.HOURS).plusHours(1);
DayOfWeek day = nextTime.getDayOfWeek();
if (day.equals(DayOfWeek.SATURDAY) || day.equals(DayOfWeek.SUNDAY)) {
nextTime = nextTime.truncatedTo(ChronoUnit.DAYS).plusDays(1).withHour(8);
} else { // Mon-Fri 8am-8pm
int hour = nextTime.getHour();
if (hour< 8)
nextTime = nextTime.plusHours(8 - hour);
else if (hour> 20)
nextTime = nextTime.truncatedTo(ChronoUnit.DAYS)
.plusDays(day.equals(DayOfWeek.FRIDAY) ? 3 : 1)
.withHour(8);
}
return nextTime;
}
}
| Modifier and Type | Method and Description |
|---|---|
| public ZonedDateTime | Returns: the date/time after which the next execution of the task should start.information about the last execution of the task.
This value will be null if the task has not yet run. lastExecutionInfo, ZonedDateTime the date/time at which the
taskScheduledTime)ManagedScheduledExecutorService.schedule
method was invoked to schedule the task.Retrieve the next time that the task should run after. |
| public default Date | Returns: the date/time after which the next execution of the task should start.information about the last execution of the task.
This value will be null if the task has not yet run. lastExecutionInfo, Date the date/time at which the
taskScheduledTime)ManagedScheduledExecutorService.schedule
method was invoked to schedule the task.Implements jakarta. |
| public default ZoneId | Returns: timezone to use for operations on this trigger.Returns the timezone to use for the
|
| public default boolean | Returns: true if the task should be skipped and rescheduled.information about the last execution of the task.
This value will be null if the task has not yet run. lastExecutionInfo, ZonedDateTime the date/time after which the execution of the task
is scheduled to start. scheduledRunTime)Return true if this run instance should be skipped. |
| public default boolean | Returns: true if the task should be skipped and rescheduled.information about the last execution of the task.
This value will be null if the task has not yet run. lastExecutionInfo, Date the date/time after which the execution of the task
is scheduled to start. scheduledRunTime)Implements jakarta. |
| getNextRunTime | back to summary |
|---|---|
| public ZonedDateTime getNextRunTime(LastExecution lastExecutionInfo, ZonedDateTime taskScheduledTime) Retrieve the next time that the task should run after.
| |
| getNextRunTime | back to summary |
|---|---|
| public default Date getNextRunTime(LastExecution lastExecutionInfo, Date taskScheduledTime) Implements jakarta. Retrieve the next time that the task should run after.
This method is provided to maintain compatibility with
| |
| getZoneId | back to summary |
|---|---|
| public default ZoneId getZoneId() Returns the timezone to use for the
The default implementation returns the system default timezone and should be overridden whenever there is chance that the server might not be running with the same timezone for which the business logic within this trigger is written.
| |
| skipRun | back to summary |
|---|---|
| public default boolean skipRun(LastExecution lastExecutionInfo, ZonedDateTime scheduledRunTime) Return true if this run instance should be skipped. This is useful if the task shouldn't run because it is late or if the task is paused or suspended.
Once this task is skipped, the state of its Future's result will throw a
The default implementation returns
| |
| skipRun | back to summary |
|---|---|
| public default boolean skipRun(LastExecution lastExecutionInfo, Date scheduledRunTime) Implements jakarta. Return true if this run instance should be skipped.
This method is provided to maintain compatibility with
| |