public class Dispatcher extends MessageDispatcher
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
.
Constructor and Description |
---|
Dispatcher(MessageDispatcherConfigurator _configurator,
java.lang.String id,
int throughput,
scala.concurrent.duration.Duration throughputDeadlineTime,
ExecutorServiceFactoryProvider executorServiceFactoryProvider,
scala.concurrent.duration.FiniteDuration shutdownTimeout) |
Modifier and Type | Method and Description |
---|---|
java.lang.ThreadLocal<scala.collection.immutable.List<java.lang.Runnable>> |
_tasksLocal() |
boolean |
batchable(java.lang.Runnable runnable)
Override this to define which runnables will be batched.
|
protected akka.dispatch.Mailbox |
createMailbox(akka.actor.Cell actor,
MailboxType mailboxType)
INTERNAL API
|
protected void |
dispatch(akka.actor.ActorCell receiver,
Envelope invocation)
INTERNAL API
|
void |
execute(java.lang.Runnable runnable) |
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(akka.dispatch.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(akka.actor.ActorCell receiver,
akka.dispatch.sysmsg.SystemMessage invocation)
INTERNAL API
|
int |
throughput()
INTERNAL API
|
scala.concurrent.duration.Duration |
throughputDeadlineTime()
INTERNAL API
|
java.lang.String |
toString() |
actors, attach, configurator, debug, detach, eventStream, inhabitants, isThroughputDeadlineTimeDefined, mailboxes, printActors, register, reportFailure, RESCHEDULED, resume, SCHEDULED, suspend, unbatchedExecute, unregister, UNSCHEDULED
public Dispatcher(MessageDispatcherConfigurator _configurator, java.lang.String id, int throughput, scala.concurrent.duration.Duration throughputDeadlineTime, ExecutorServiceFactoryProvider executorServiceFactoryProvider, scala.concurrent.duration.FiniteDuration shutdownTimeout)
public java.lang.String id()
MessageDispatcher
id
in class MessageDispatcher
public int throughput()
MessageDispatcher
throughput
in class MessageDispatcher
public scala.concurrent.duration.Duration throughputDeadlineTime()
MessageDispatcher
throughputDeadlineTime
in class MessageDispatcher
public scala.concurrent.duration.FiniteDuration shutdownTimeout()
MessageDispatcher
INTERNAL API
shutdownTimeout
in class MessageDispatcher
protected final ExecutorServiceDelegate executorService()
protected void dispatch(akka.actor.ActorCell receiver, Envelope invocation)
dispatch
in class MessageDispatcher
protected void systemDispatch(akka.actor.ActorCell receiver, akka.dispatch.sysmsg.SystemMessage invocation)
systemDispatch
in class MessageDispatcher
protected void executeTask(TaskInvocation invocation)
executeTask
in class MessageDispatcher
protected akka.dispatch.Mailbox createMailbox(akka.actor.Cell actor, MailboxType mailboxType)
createMailbox
in class MessageDispatcher
protected void shutdown()
shutdown
in class MessageDispatcher
protected boolean registerForExecution(akka.dispatch.Mailbox mbox, boolean hasMessageHint, boolean hasSystemMessageHint)
INTERNAL API
registerForExecution
in class MessageDispatcher
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.ThreadLocal<scala.collection.immutable.List<java.lang.Runnable>> _tasksLocal()
public void execute(java.lang.Runnable runnable)
execute
in interface java.util.concurrent.Executor
public boolean batchable(java.lang.Runnable runnable)