Attaches the specified actor instance to this dispatcher, which includes scheduling it to run for the first time (Create() is expected to have been enqueued by the ActorCell upon mailbox creation).
Attaches the specified actor instance to this dispatcher, which includes scheduling it to run for the first time (Create() is expected to have been enqueued by the ActorCell upon mailbox creation).
Creates and returns a mailbox for the given actor.
Creates and returns a mailbox for the given actor.
Detaches the specified actor instance from this dispatcher
Detaches the specified actor instance from this dispatcher
Will be called when the dispatcher is to queue an invocation for execution
Will be called when the dispatcher is to queue an invocation for execution
Submits the runnable for execution
Submits the runnable for execution
Identifier of this dispatcher, corresponds to the full key of the dispatcher configuration.
Identifier of this dispatcher, corresponds to the full key of the dispatcher configuration.
If you override it, you must call it.
If you override it, you must call it. But only ever once. See "attach" for only invocation.
Returns if it was registered
Returns if it was registered
Failed tasks should call reportFailure to let the ExecutionContext log the problem or whatever is appropriate for the implementation.
Failed tasks should call reportFailure to let the ExecutionContext log the problem or whatever is appropriate for the implementation.
Called one time every time an actor is detached from this dispatcher and this dispatcher has no actors left attached Must be idempotent
Called one time every time an actor is detached from this dispatcher and this dispatcher has no actors left attached Must be idempotent
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.
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
After the call to this method, the dispatcher mustn't begin any new message processing for the specified reference
After the call to this method, the dispatcher mustn't begin any new message processing for the specified reference
Will be called when the dispatcher is to queue an invocation for execution
Will be called when the dispatcher is to queue an invocation for execution
If you override it, you must call it.
If you override it, you must call it. But only ever once. See "detach" for the only invocation
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 the
lookup
method in Dispatchers.akka.dispatch.Dispatchers
,akka.dispatch.BalancingDispatcher