|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object akka.dispatch.MessageDispatcher akka.dispatch.Dispatcher akka.dispatch.BalancingDispatcher
public class BalancingDispatcher
An executor based event driven dispatcher which will try to redistribute work from busy actors to idle actors. It is assumed that all actors using the same instance of this dispatcher can process all messages that have been sent to one of the actors. I.e. the actors belong to a pool of actors, and to the client there is no guarantee about which actor instance actually processes a given message.
Although the technique used in this implementation is commonly known as "work stealing", the actual implementation is probably best described as "work donating" because the actor of which work is being stolen takes the initiative. The preferred way of creating dispatchers is to define configuration of it and use the thelookup
method in Dispatchers
.
BalancingDispatcher
,
Dispatchers
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface scala.concurrent.ExecutionContext |
---|
scala.concurrent.ExecutionContext.Implicits$ |
Constructor Summary | |
---|---|
BalancingDispatcher(MessageDispatcherConfigurator _configurator,
java.lang.String _id,
int throughput,
scala.concurrent.duration.Duration throughputDeadlineTime,
MailboxType _mailboxType,
ExecutorServiceFactoryProvider _executorServiceFactoryProvider,
scala.concurrent.duration.FiniteDuration _shutdownTimeout,
boolean attemptTeamWork)
|
Method Summary | |
---|---|
protected Mailbox |
createMailbox(Cell actor,
MailboxType mailboxType)
INTERNAL API |
protected void |
dispatch(ActorCell receiver,
Envelope invocation)
INTERNAL API |
MessageQueue |
messageQueue()
INTERNAL API |
protected void |
register(ActorCell actor)
If you override it, you must call it. |
java.util.concurrent.ConcurrentSkipListSet<ActorCell> |
team()
INTERNAL API |
protected void |
teamWork()
|
protected void |
unregister(ActorCell actor)
If you override it, you must call it. |
Methods inherited from class akka.dispatch.Dispatcher |
---|
executeTask, executorService, id, registerForExecution, shutdown, shutdownTimeout, systemDispatch, throughput, throughputDeadlineTime, toString |
Methods inherited from class akka.dispatch.MessageDispatcher |
---|
actors, attach, configurator, debug, detach, eventStream, inhabitants, isThroughputDeadlineTimeDefined, mailboxes, printActors, reportFailure, RESCHEDULED, resubmitOnBlock, resume, SCHEDULED, suspend, unbatchedExecute, 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 |
---|
public BalancingDispatcher(MessageDispatcherConfigurator _configurator, java.lang.String _id, int throughput, scala.concurrent.duration.Duration throughputDeadlineTime, MailboxType _mailboxType, ExecutorServiceFactoryProvider _executorServiceFactoryProvider, scala.concurrent.duration.FiniteDuration _shutdownTimeout, boolean attemptTeamWork)
Method Detail |
---|
public java.util.concurrent.ConcurrentSkipListSet<ActorCell> team()
public MessageQueue messageQueue()
protected Mailbox createMailbox(Cell actor, MailboxType mailboxType)
Dispatcher
createMailbox
in class Dispatcher
actor
- (undocumented)mailboxType
- (undocumented)
protected void register(ActorCell actor)
MessageDispatcher
INTERNAL API
register
in class MessageDispatcher
actor
- (undocumented)protected void unregister(ActorCell actor)
MessageDispatcher
INTERNAL API
unregister
in class MessageDispatcher
actor
- (undocumented)protected void dispatch(ActorCell receiver, Envelope invocation)
Dispatcher
dispatch
in class Dispatcher
receiver
- (undocumented)invocation
- (undocumented)protected void teamWork()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |