Interface SequenceReportingEventHandler<T>

  • Type Parameters:
    T - event implementation storing the data for sharing during exchange or parallel coordination of an event.
    All Superinterfaces:
    EventHandler<T>, EventHandlerIdentity

    public interface SequenceReportingEventHandler<T>
    extends EventHandler<T>
    Used by the BatchEventProcessor to set a callback allowing the EventHandler to notify when it has finished consuming an event if this happens after the EventHandler.onEvent(Object, long, boolean) call.

    Typically this would be used when the handler is performing some sort of batching operation such as writing to an IO device; after the operation has completed, the implementation should call Sequence.set(long) to update the sequence and allow other processes that are dependent on this handler to progress.

    • Method Detail

      • onBatchStart

        default void onBatchStart​(long batchSize,
                                  long queueDepth)
        Invoked by BatchEventProcessor prior to processing a batch of events
        Parameters:
        batchSize - the size of the batch that is starting
        queueDepth - the total number of queued up events including the batch about to be processed
      • onStart

        default void onStart()
        Called once on thread start before first event is available.
      • onShutdown

        default void onShutdown()
        Called once just before the event processing thread is shutdown.

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

      • onTimeout

        default void onTimeout​(long sequence)
                        throws java.lang.Exception
        Parameters:
        sequence - - the last processed sequence.
        Throws:
        java.lang.Exception - if the implementation is unable to handle this timeout.