Class EventHandlerGroup<T>

  • Type Parameters:
    T - the type of entry used by the event processors.

    public class EventHandlerGroup<T>
    extends java.lang.Object
    A group of EventProcessors used as part of the Disruptor.
    • Method Detail

      • and

        public EventHandlerGroup<T> and​(EventHandlerGroup<T> otherHandlerGroup)
        Create a new event handler group that combines the consumers in this group with otherHandlerGroup.
        Parameters:
        otherHandlerGroup - the event handler group to combine.
        Returns:
        a new EventHandlerGroup combining the existing and new consumers into a single dependency group.
      • and

        public EventHandlerGroup<T> and​(EventProcessor... processors)
        Create a new event handler group that combines the handlers in this group with processors.
        Parameters:
        processors - the processors to combine.
        Returns:
        a new EventHandlerGroup combining the existing and new processors into a single dependency group.
      • then

        @SafeVarargs
        public final EventHandlerGroup<T> then​(EventHandler<? super T>... handlers)

        Set up batch handlers to consume events from the ring buffer. These handlers will only process events after every EventProcessor in this group has processed the event.

        This method is generally used as part of a chain. For example if the handler A must process events before handler B:

        dw.handleEventsWith(A).then(B);
        Parameters:
        handlers - the batch handlers that will process events.
        Returns:
        a EventHandlerGroup that can be used to set up a event processor barrier over the created event processors.
      • then

        @SafeVarargs
        public final EventHandlerGroup<T> then​(BatchRewindStrategy batchRewindStrategy,
                                               RewindableEventHandler<? super T>... handlers)

        Set up batch handlers to consume events from the ring buffer. These handlers will only process events after every EventProcessor in this group has processed the event.

        This method is generally used as part of a chain. For example if the handler A must process events before handler B:

        dw.handleEventsWith(A).then(B);
        Parameters:
        batchRewindStrategy - a BatchRewindStrategy for customizing how to handle a RewindableException.
        handlers - the rewindable event handlers that will process events.
        Returns:
        a EventHandlerGroup that can be used to set up a event processor barrier over the created event processors.
      • then

        @SafeVarargs
        public final EventHandlerGroup<T> then​(EventProcessorFactory<T>... eventProcessorFactories)

        Set up custom event processors to handle events from the ring buffer. The Disruptor will automatically start these processors when Disruptor.start() is called.

        This method is generally used as part of a chain. For example if the handler A must process events before handler B:

        Parameters:
        eventProcessorFactories - the event processor factories to use to create the event processors that will process events.
        Returns:
        a EventHandlerGroup that can be used to chain dependencies.
      • handleEventsWith

        @SafeVarargs
        public final EventHandlerGroup<T> handleEventsWith​(EventHandler<? super T>... handlers)

        Set up batch handlers to handle events from the ring buffer. These handlers will only process events after every EventProcessor in this group has processed the event.

        This method is generally used as part of a chain. For example if A must process events before B:

        dw.after(A).handleEventsWith(B);
        Parameters:
        handlers - the batch handlers that will process events.
        Returns:
        a EventHandlerGroup that can be used to set up a event processor barrier over the created event processors.
      • handleEventsWith

        @SafeVarargs
        public final EventHandlerGroup<T> handleEventsWith​(BatchRewindStrategy batchRewindStrategy,
                                                           RewindableEventHandler<? super T>... handlers)

        Set up batch handlers to handle events from the ring buffer. These handlers will only process events after every EventProcessor in this group has processed the event.

        This method is generally used as part of a chain. For example if A must process events before B:

        dw.after(A).handleEventsWith(B);
        Parameters:
        batchRewindStrategy - a BatchRewindStrategy for customizing how to handle a RewindableException.
        handlers - the rewindable event handlers that will process events.
        Returns:
        a EventHandlerGroup that can be used to set up a event processor barrier over the created event processors.
      • handleEventsWith

        @SafeVarargs
        public final EventHandlerGroup<T> handleEventsWith​(EventProcessorFactory<T>... eventProcessorFactories)

        Set up custom event processors to handle events from the ring buffer. The Disruptor will automatically start these processors when Disruptor.start() is called.

        This method is generally used as part of a chain. For example if A must process events before B:

        dw.after(A).handleEventsWith(B);
        Parameters:
        eventProcessorFactories - the event processor factories to use to create the event processors that will process events.
        Returns:
        a EventHandlerGroup that can be used to chain dependencies.
      • asSequenceBarrier

        public SequenceBarrier asSequenceBarrier()
        Create a dependency barrier for the processors in this group. This allows custom event processors to have dependencies on BatchEventProcessors created by the disruptor.
        Returns:
        a SequenceBarrier including all the processors in this group.