[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

Classes

  ClassDescription
public classScheduleBucket
This class acts as a buckets for sorting schedule service callbacks that are scheduled to occur at the same time. Each buckets constists of net.esper.schedule.ScheduleSlot slots that callbacks are assigned to.

At the time of timer evaluation, callbacks that become triggerable are ordered using the bucket as the first-level order, and slot as the second-level order.

Each statement at statement creation time allocates a buckets, and each timer within the statement allocates a slot. Thus statements that depend on other statements (such as for insert-into), and timers within their statement (such as time window or output rate limit timers) behave deterministically.


public classScheduleCalendar
Calendar class for use in scheduling, specifically for use in computing the next invocation time.

public classScheduleCallbackImpl
An implementation of the ScheduleCallbackDelegate that proxies the interface through a delegate. IMO, this is a lot of extra baggage that is cleanly handled thorugh the delegate interface, but will remain intact until we can review the interaction points and convert them to delegates.

public classScheduleComputeHelper
For a crontab-like schedule, this class computes the next occurance given a Start time and a specification of what the schedule looks like. The resolution at which this works is at the second level. The next occurance is always at least 1 second ahead. The class implements an algorithm that Starts at the highest precision (seconds) and continues to the lowest precicion (month). For each precision level the algorithm looks at the list of valid values and finds a value for each that is equal to or greater then the valid values supplied. If no equal or greater value was supplied, it will reset all higher precision elements to its minimum value.

public classScheduleServiceException
This exception is thrown to indicate a problem with scheduling, such as trying to add a scheduling callback that already existed or trying to remove one that didn't exist.

public classScheduleSlot
This class is a slot in a net.esper.schedule.ScheduleBucket for sorting schedule service callbacks.

public classScheduleSpec
Holds a schedule specification which consists of a set of integer values or a null value for each schedule unit to indicate a wildcard. There is always an element in the specification for each unit minutes, hours, day of month, month, and day of week. There is optionally an element in the specification for the unit seconds.

public classScheduleUnit
Enumeration of units in a specification of schedule, which contains elements for each of the following units: minute, hour, day of month, month, day of week and seconds. Notice: value ranges are the same as the "crontab" standard values not the Java Calendar field values. The Java Calendar MONTH value range is 0 to 11, while in this enum the range is 1 to 12.

public classSchedulingServiceImpl
Implements the schedule service by simply keeping a sorted set of long millisecond values and a set of callbacks for each.

public classSchedulingServiceProvider
Static factory for implementations of the SchedulingService interface.

Interfaces

  InterfaceDescription
public interfaceScheduleCallback
Interface for scheduled callbacks.

public interfaceSchedulingService
Interface for a service that allows to add and remove callbacks for a certain time which are called when the evaluate method is invoked and the current time is on or after the callback times. It is the expectation that the triggerPast method is called with same or ascending values for each subsequent call. Callbacks with are triggered are automatically removed by implementations.

Delegates

  DelegateDescription
public delegateScheduleCallbackDelegate
Interface method wrapped as a delegate