Package com.pnfsoftware.jeb.util.events
Class AggregatorDispatcher
java.lang.Object
com.pnfsoftware.jeb.util.events.AggregatorDispatcher
- All Implemented Interfaces:
IEventListener
An
event
aggregator-dispatcher. This object is useful when the frequency of events
reception is getting high - and as a consequence, event processing time getting larger (relatively)
than events incoming period. Events are aggregated and dispatched
only after either many events have been received or a timeout has elapsed.-
Constructor Summary
ConstructorDescriptionCreate a new aggregator-dispatcher with a capacity of 100, and a resolution of 250 ms.AggregatorDispatcher
(int capacity, long triggerResolution) Create a new aggregator-dispatcher. -
Method Summary
Modifier and TypeMethodDescriptionint
capacity()
void
abstract void
onMultipleEvents
(List<IEvent> events) This method is called by the aggregator-dispatcher whenever any of the following condition occurs:enough events
were collected; orenough time
has elapsed.long
int
-
Constructor Details
-
AggregatorDispatcher
public AggregatorDispatcher()Create a new aggregator-dispatcher with a capacity of 100, and a resolution of 250 ms. -
AggregatorDispatcher
public AggregatorDispatcher(int capacity, long triggerResolution) Create a new aggregator-dispatcher.- Parameters:
capacity
- event capacity, at least 1: after that many events are received,onMultipleEvents(List)
routine is calledtriggerResolution
- a resolution in milliseconds: the period at which the event queue is automatically dispatched and cleaned, regardless of whether the capacity was reached. Careful: 0 is a valid resolution at which the auto-dispatcher is disabled, ie, events are dispatched ONLY when the aggregator is at full capacity
-
-
Method Details
-
onEvent
- Specified by:
onEvent
in interfaceIEventListener
-
unattended
public int unattended() -
capacity
public int capacity() -
resolution
public long resolution() -
onMultipleEvents
This method is called by the aggregator-dispatcher whenever any of the following condition occurs:enough events
were collected; orenough time
has elapsed.Thread notes: This method may be called by the thread that generated the event, or any other worker thread used by the aggregator-dispatcher. Execution of this method is serialized: the next execution of
onMultipleEvents(List)
will not start until the previous execution has terminated.- Parameters:
events
- the list of collected events
-