Package akka.dispatch
Class Dispatcher
- java.lang.Object
-
- akka.dispatch.MessageDispatcher
-
- akka.dispatch.Dispatcher
-
- All Implemented Interfaces:
BatchingExecutor
,java.util.concurrent.Executor
,scala.concurrent.ExecutionContext
,scala.concurrent.ExecutionContextExecutor
- Direct Known Subclasses:
PinnedDispatcher
public class Dispatcher extends MessageDispatcher
The event-basedDispatcher
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 inDispatchers
.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 Summary
Constructors Constructor Description Dispatcher(MessageDispatcherConfigurator _configurator, java.lang.String id, int throughput, scala.concurrent.duration.Duration throughputDeadlineTime, ExecutorServiceFactoryProvider executorServiceFactoryProvider, scala.concurrent.duration.FiniteDuration shutdownTimeout)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected akka.dispatch.Mailbox
createMailbox(Cell actor, MailboxType mailboxType)
INTERNAL APIprotected void
dispatch(akka.actor.ActorCell receiver, Envelope invocation)
INTERNAL APIprotected void
executeTask(TaskInvocation invocation)
INTERNAL APIprotected ExecutorServiceDelegate
executorService()
java.lang.String
id()
Identifier of this dispatcher, corresponds to the full key of the dispatcher configuration.protected boolean
registerForExecution(akka.dispatch.Mailbox mbox, boolean hasMessageHint, boolean hasSystemMessageHint)
Returns if it was registeredprotected void
shutdown()
INTERNAL APIscala.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.confprotected void
systemDispatch(akka.actor.ActorCell receiver, SystemMessage invocation)
INTERNAL APIint
throughput()
INTERNAL APIscala.concurrent.duration.Duration
throughputDeadlineTime()
INTERNAL APIjava.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
-
-
-
-
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
-
createMailbox
protected akka.dispatch.Mailbox createMailbox(Cell actor, MailboxType mailboxType)
INTERNAL API- Specified by:
createMailbox
in classMessageDispatcher
-
dispatch
protected void dispatch(akka.actor.ActorCell receiver, Envelope invocation)
INTERNAL API- Specified by:
dispatch
in classMessageDispatcher
-
executeTask
protected void executeTask(TaskInvocation invocation)
INTERNAL API- Specified by:
executeTask
in classMessageDispatcher
-
executorService
protected final ExecutorServiceDelegate executorService()
-
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 classMessageDispatcher
-
registerForExecution
protected boolean registerForExecution(akka.dispatch.Mailbox mbox, boolean hasMessageHint, boolean hasSystemMessageHint)
Returns if it was registeredINTERNAL API
- Specified by:
registerForExecution
in classMessageDispatcher
-
shutdown
protected void shutdown()
INTERNAL API- Specified by:
shutdown
in classMessageDispatcher
-
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.confINTERNAL API
- Specified by:
shutdownTimeout
in classMessageDispatcher
-
systemDispatch
protected void systemDispatch(akka.actor.ActorCell receiver, SystemMessage invocation)
INTERNAL API- Specified by:
systemDispatch
in classMessageDispatcher
-
throughput
public int throughput()
Description copied from class:MessageDispatcher
INTERNAL API- Specified by:
throughput
in classMessageDispatcher
-
throughputDeadlineTime
public scala.concurrent.duration.Duration throughputDeadlineTime()
Description copied from class:MessageDispatcher
INTERNAL API- Specified by:
throughputDeadlineTime
in classMessageDispatcher
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-