Class Dispatcher

  • All Implemented Interfaces:
    java.util.concurrent.Executor, BatchingExecutor, scala.concurrent.ExecutionContext, scala.concurrent.ExecutionContextExecutor
    Direct Known Subclasses:
    PinnedDispatcher

    public class Dispatcher
    extends MessageDispatcher
    The event-based Dispatcher binds a set of Actors to a thread pool backed up by a BlockingQueue.

    The preferred way of creating dispatchers is to define configuration of it and use the the lookup method in pekko.dispatch.Dispatchers.

    param: throughput positive integer indicates the dispatcher will only process so much messages at a time from the mailbox, without checking the mailboxes of other actors. Zero or negative means the dispatcher always continues until the mailbox is empty. Larger values (or zero or negative) increase throughput, smaller values increase fairness

    • Constructor Detail

      • Dispatcher

        public Dispatcher​(MessageDispatcherConfigurator _configurator,
                          java.lang.String id,
                          int throughput,
                          scala.concurrent.duration.Duration throughputDeadlineTime,
                          ExecutorServiceFactoryProvider executorServiceFactoryProvider,
                          scala.concurrent.duration.FiniteDuration shutdownTimeout)
    • Method Detail

      • dispatch

        protected void dispatch​(org.apache.pekko.actor.ActorCell receiver,
                                Envelope invocation)
        INTERNAL API
        Specified by:
        dispatch in class MessageDispatcher
      • id

        public java.lang.String id()
        Description copied from class: MessageDispatcher
        Identifier of this dispatcher, corresponds to the full key of the dispatcher configuration.
        Specified by:
        id in class MessageDispatcher
      • registerForExecution

        protected boolean registerForExecution​(org.apache.pekko.dispatch.Mailbox mbox,
                                               boolean hasMessageHint,
                                               boolean hasSystemMessageHint)
        Returns if it was registered

        INTERNAL API

        Specified by:
        registerForExecution in class MessageDispatcher
      • shutdownTimeout

        public scala.concurrent.duration.FiniteDuration shutdownTimeout()
        Description copied from class: MessageDispatcher
        When the dispatcher no longer has any actors registered, how long will it wait until it shuts itself down, defaulting to your pekko configs "pekko.actor.default-dispatcher.shutdown-timeout" or default specified in reference.conf

        INTERNAL API

        Specified by:
        shutdownTimeout in class MessageDispatcher
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object