Class AggregateEventHandler<T>

java.lang.Object
com.lmax.disruptor.AggregateEventHandler<T>
Type Parameters:
T - event implementation storing the data for sharing during exchange or parallel coordination of an event.
All Implemented Interfaces:
EventHandler<T>, LifecycleAware

public final class AggregateEventHandler<T> extends Object implements EventHandler<T>, LifecycleAware
An aggregate collection of EventHandlers that get called in sequence for each event.
  • Field Details

  • Constructor Details

    • AggregateEventHandler

      @SafeVarargs public AggregateEventHandler(EventHandler<T>... eventHandlers)
      Construct an aggregate collection of EventHandlers to be called in sequence.
      Parameters:
      eventHandlers - to be called in sequence.
  • Method Details

    • onEvent

      public void onEvent(T event, long sequence, boolean endOfBatch) throws Exception
      Description copied from interface: EventHandler
      Called when a publisher has published an event to the RingBuffer. The BatchEventProcessor will read messages from the RingBuffer in batches, where a batch is all of the events available to be processed without having to wait for any new event to arrive. This can be useful for event handlers that need to do slower operations like I/O as they can group together the data from multiple events into a single operation. Implementations should ensure that the operation is always performed when endOfBatch is true as the time between that message an the next one is inderminate.
      Specified by:
      onEvent in interface EventHandler<T>
      Parameters:
      event - published to the RingBuffer
      sequence - of the event being processed
      endOfBatch - flag to indicate if this is the last event in a batch from the RingBuffer
      Throws:
      Exception - if the EventHandler would like the exception handled further up the chain.
    • onStart

      public void onStart()
      Description copied from interface: LifecycleAware
      Called once on thread start before first event is available.
      Specified by:
      onStart in interface LifecycleAware
    • onShutdown

      public void onShutdown()
      Description copied from interface: LifecycleAware

      Called once just before the thread is shutdown.

      Sequence event processing will already have stopped before this method is called. No events will be processed after this message.

      Specified by:
      onShutdown in interface LifecycleAware