akka.dispatch
Class Dispatcher

java.lang.Object
  extended by akka.dispatch.MessageDispatcher
      extended by akka.dispatch.Dispatcher
All Implemented Interfaces:
BatchingExecutor, java.util.concurrent.Executor, scala.concurrent.ExecutionContext, scala.concurrent.ExecutionContextExecutor
Direct Known Subclasses:
BalancingDispatcher, 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 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


Nested Class Summary
 
Nested classes/interfaces inherited from interface scala.concurrent.ExecutionContext
scala.concurrent.ExecutionContext.Implicits$
 
Constructor Summary
Dispatcher(MessageDispatcherConfigurator _configurator, java.lang.String id, int throughput, scala.concurrent.duration.Duration throughputDeadlineTime, ExecutorServiceFactoryProvider executorServiceFactoryProvider, scala.concurrent.duration.FiniteDuration shutdownTimeout)
           
 
Method Summary
protected  Mailbox createMailbox(Cell actor, MailboxType mailboxType)
          INTERNAL API
protected  void dispatch(ActorCell receiver, Envelope invocation)
          INTERNAL API
protected  void executeTask(TaskInvocation invocation)
          INTERNAL API
protected  ExecutorServiceDelegate executorService()
           
 java.lang.String id()
          Identifier of this dispatcher, corresponds to the full key of the dispatcher configuration.
protected  boolean registerForExecution(Mailbox mbox, boolean hasMessageHint, boolean hasSystemMessageHint)
          Returns if it was registered
protected  void shutdown()
          INTERNAL API
 scala.concurrent.duration.FiniteDuration shutdownTimeout()
          When the dispatcher no longer has any actors registered, how long will it wait until it shuts itself down, defaulting to your akka configs "akka.actor.default-dispatcher.shutdown-timeout" or default specified in reference.conf
protected  void systemDispatch(ActorCell receiver, SystemMessage invocation)
          INTERNAL API
 int throughput()
          INTERNAL API
 scala.concurrent.duration.Duration throughputDeadlineTime()
          INTERNAL API
 java.lang.String toString()
           
 
Methods inherited from class akka.dispatch.MessageDispatcher
actors, attach, configurator, debug, detach, eventStream, inhabitants, isThroughputDeadlineTimeDefined, mailboxes, printActors, register, reportFailure, RESCHEDULED, resubmitOnBlock, resume, SCHEDULED, suspend, unbatchedExecute, unregister, UNSCHEDULED
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface akka.dispatch.BatchingExecutor
batchable, execute
 
Methods inherited from interface scala.concurrent.ExecutionContext
execute, prepare
 

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

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
Returns:
(undocumented)

throughput

public int throughput()
Description copied from class: MessageDispatcher
INTERNAL API

Specified by:
throughput in class MessageDispatcher
Returns:
(undocumented)

throughputDeadlineTime

public scala.concurrent.duration.Duration throughputDeadlineTime()
Description copied from class: MessageDispatcher
INTERNAL API

Specified by:
throughputDeadlineTime in class MessageDispatcher
Returns:
(undocumented)

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 akka configs "akka.actor.default-dispatcher.shutdown-timeout" or default specified in reference.conf

INTERNAL API

Specified by:
shutdownTimeout in class MessageDispatcher
Returns:
(undocumented)

executorService

protected final ExecutorServiceDelegate executorService()

dispatch

protected void dispatch(ActorCell receiver,
                        Envelope invocation)
INTERNAL API

Specified by:
dispatch in class MessageDispatcher
Parameters:
receiver - (undocumented)
invocation - (undocumented)

systemDispatch

protected void systemDispatch(ActorCell receiver,
                              SystemMessage invocation)
INTERNAL API

Specified by:
systemDispatch in class MessageDispatcher
Parameters:
receiver - (undocumented)
invocation - (undocumented)

executeTask

protected void executeTask(TaskInvocation invocation)
INTERNAL API

Specified by:
executeTask in class MessageDispatcher
Parameters:
invocation - (undocumented)

createMailbox

protected Mailbox createMailbox(Cell actor,
                                MailboxType mailboxType)
INTERNAL API

Specified by:
createMailbox in class MessageDispatcher
Parameters:
actor - (undocumented)
mailboxType - (undocumented)
Returns:
(undocumented)

shutdown

protected void shutdown()
INTERNAL API

Specified by:
shutdown in class MessageDispatcher

registerForExecution

protected boolean registerForExecution(Mailbox mbox,
                                       boolean hasMessageHint,
                                       boolean hasSystemMessageHint)
Returns if it was registered

INTERNAL API

Specified by:
registerForExecution in class MessageDispatcher
Parameters:
mbox - (undocumented)
hasMessageHint - (undocumented)
hasSystemMessageHint - (undocumented)
Returns:
(undocumented)

toString

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