akka.dispatch

ExecutorBasedEventDrivenWorkStealingDispatcher

class ExecutorBasedEventDrivenWorkStealingDispatcher extends ExecutorBasedEventDrivenDispatcher

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 use the akka.dispatch.Dispatchers factory object.

See also

akka.dispatch.Dispatchers

,

akka.dispatch.ExecutorBasedEventDrivenWorkStealingDispatcher

Linear Supertypes
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. ExecutorBasedEventDrivenWorkStealingDispatcher
  2. ExecutorBasedEventDrivenDispatcher
  3. MessageDispatcher
  4. AnyRef
  5. Any
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ExecutorBasedEventDrivenWorkStealingDispatcher (_name: String, mailboxType: MailboxType)

  2. new ExecutorBasedEventDrivenWorkStealingDispatcher (_name: String, memberType: Class[_ <: akka.actor.Actor])

  3. new ExecutorBasedEventDrivenWorkStealingDispatcher (_name: String, _config: ThreadPoolConfig)

  4. new ExecutorBasedEventDrivenWorkStealingDispatcher (_name: String, throughput: Int)

  5. new ExecutorBasedEventDrivenWorkStealingDispatcher (_name: String, throughput: Int, mailboxType: MailboxType)

  6. new ExecutorBasedEventDrivenWorkStealingDispatcher (_name: String, throughput: Int, throughputDeadlineTime: Int, mailboxType: MailboxType)

  7. new ExecutorBasedEventDrivenWorkStealingDispatcher (_name: String, throughput: Int, throughputDeadlineTime: Int, mailboxType: MailboxType, config: ThreadPoolConfig)

Value Members

  1. def != (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  2. def != (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  3. def ## (): Int

    Attributes
    final
    Definition Classes
    AnyRef → Any
  4. def == (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  5. def == (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  6. val _tasks : AtomicLong

    Attributes
    protected
    Definition Classes
    MessageDispatcher
  7. val active : Switch

    Attributes
    protected
    Definition Classes
    MessageDispatcher
  8. def asInstanceOf [T0] : T0

    Attributes
    final
    Definition Classes
    Any
  9. def attach (actorRef: ActorRef): Unit

    Attaches the specified actorRef to this dispatcher

    Attaches the specified actorRef to this dispatcher

    Attributes
    final
    Definition Classes
    MessageDispatcher
  10. def attemptDonationOf (message: MessageInvocation, donorMbox: MessageQueue with ExecutableMailbox): Boolean

    Returns true if the donation succeeded or false otherwise

    Returns true if the donation succeeded or false otherwise

    Attributes
    protected
  11. def clone (): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  12. def createMailbox (actorRef: ActorRef): AnyRef

    Creates and returns a mailbox for the given actor.

    Creates and returns a mailbox for the given actor.

    Definition Classes
    ExecutorBasedEventDrivenDispatcherMessageDispatcher
  13. def detach (actorRef: ActorRef): Unit

    Detaches the specified actorRef from this dispatcher

    Detaches the specified actorRef from this dispatcher

    Attributes
    final
    Definition Classes
    MessageDispatcher
  14. def dispatch (invocation: MessageInvocation): Unit

    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

    Attributes
    protected[akka]
    Definition Classes
    ExecutorBasedEventDrivenWorkStealingDispatcherExecutorBasedEventDrivenDispatcherMessageDispatcher
  15. def dispatchMessage (invocation: MessageInvocation): Unit

    Attributes
    protected[akka] final
    Definition Classes
    MessageDispatcher
  16. def dispatchTask (block: () ⇒ Unit): Unit

    Attributes
    protected[akka] final
    Definition Classes
    MessageDispatcher
  17. def doFindDonorRecipient (donorMbox: MessageQueue with ExecutableMailbox, potentialRecipients: Vector[ActorRef], startIndex: Int): ActorRef

    Returns an available recipient for the message, if any

    Returns an available recipient for the message, if any

    Attributes
    protected
  18. def donate (organ: MessageInvocation, recipient: ActorRef): Boolean

    Rewrites the message and adds that message to the recipients mailbox returns true if the message is non-null

    Rewrites the message and adds that message to the recipients mailbox returns true if the message is non-null

    Attributes
    protected
  19. def donateFrom (donorMbox: MessageQueue with ExecutableMailbox): Boolean

    Returns true if it successfully donated a message

    Returns true if it successfully donated a message

    Attributes
    protected
  20. def eq (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  21. def equals (arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  22. def executeTask (invocation: TaskInvocation): Unit

    Attributes
    protected[akka]
    Definition Classes
    ExecutorBasedEventDrivenDispatcherMessageDispatcher
  23. val executorService : AtomicReference[ExecutorService]

    Attributes
    protected[akka]
    Definition Classes
    ExecutorBasedEventDrivenDispatcher
  24. def finalize (): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  25. def getClass (): java.lang.Class[_]

    Attributes
    final
    Definition Classes
    AnyRef → Any
  26. def getMailbox (receiver: ActorRef): MessageQueue with ExecutableMailbox

    returns

    the mailbox associated with the actor

    Attributes
    protected
    Definition Classes
    ExecutorBasedEventDrivenDispatcher
  27. val guard : ReentrantGuard

    Attributes
    protected
    Definition Classes
    MessageDispatcher
  28. def hashCode (): Int

    Definition Classes
    AnyRef → Any
  29. def isInstanceOf [T0] : Boolean

    Attributes
    final
    Definition Classes
    Any
  30. def mailboxIsEmpty (actorRef: ActorRef): Boolean

    Returns the "current" emptiness status of the mailbox for the specified actor

    Returns the "current" emptiness status of the mailbox for the specified actor

    Definition Classes
    ExecutorBasedEventDrivenDispatcherMessageDispatcher
  31. def mailboxSize (actorRef: ActorRef): Int

    Returns the size of the mailbox for the specified actor

    Returns the size of the mailbox for the specified actor

    Definition Classes
    ExecutorBasedEventDrivenDispatcherMessageDispatcher
  32. val name : String

    Name of this dispatcher.

    Name of this dispatcher.

    Definition Classes
    ExecutorBasedEventDrivenDispatcherMessageDispatcher
  33. def ne (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  34. def notify (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  35. def notifyAll (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  36. def reRegisterForExecution (mbox: MessageQueue with ExecutableMailbox): Unit

  37. def register (actorRef: ActorRef): Unit

    Attributes
    protected[akka]
    Definition Classes
    ExecutorBasedEventDrivenWorkStealingDispatcherMessageDispatcher
  38. def registerForExecution (mbox: MessageQueue with ExecutableMailbox): Unit

    Attributes
    protected[akka]
    Definition Classes
    ExecutorBasedEventDrivenDispatcher
  39. def resume (actorRef: ActorRef): Unit

  40. def shutdown (): Unit

    Called one time every time an actor is detached from this dispatcher and this dispatcher has no actors left attached

    Called one time every time an actor is detached from this dispatcher and this dispatcher has no actors left attached

    Attributes
    protected[akka]
    Definition Classes
    ExecutorBasedEventDrivenDispatcherMessageDispatcher
  41. def start (): Unit

    Called one time every time an actor is attached to this dispatcher and this dispatcher was previously shutdown

    Called one time every time an actor is attached to this dispatcher and this dispatcher was previously shutdown

    Attributes
    protected[akka]
    Definition Classes
    ExecutorBasedEventDrivenDispatcherMessageDispatcher
  42. def stopAllAttachedActors : Unit

    Traverses the list of actors (uuids) currently being attached to this dispatcher and stops those actors

    Traverses the list of actors (uuids) currently being attached to this dispatcher and stops those actors

    Definition Classes
    MessageDispatcher
  43. def suspend (actorRef: ActorRef): Unit

    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

    Definition Classes
    ExecutorBasedEventDrivenDispatcherMessageDispatcher
  44. def synchronized [T0] (arg0: ⇒ T0): T0

    Attributes
    final
    Definition Classes
    AnyRef
  45. def tasks : Long

    Returns the amount of tasks queued for execution

    Returns the amount of tasks queued for execution

    Definition Classes
    MessageDispatcher
  46. val threadFactory : MonitorableThreadFactory

    Attributes
    protected[akka]
    Definition Classes
    ExecutorBasedEventDrivenDispatcher
  47. def timeoutMs : Long

    When the dispatcher no longer has any actors registered, how long will it wait until it shuts itself down, in Ms 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, in Ms defaulting to your akka configs "akka.actor.dispatcher-shutdown-timeout" or otherwise, 1 Second

    Attributes
    protected[akka]
    Definition Classes
    MessageDispatcher
  48. val toString : String

    Definition Classes
    ExecutorBasedEventDrivenDispatcher → AnyRef → Any
  49. def unregister (actorRef: ActorRef): Any

    Attributes
    protected[akka]
    Definition Classes
    ExecutorBasedEventDrivenWorkStealingDispatcherMessageDispatcher
  50. val uuids : ConcurrentSkipListSet[Uuid]

    Attributes
    protected
    Definition Classes
    MessageDispatcher
  51. def wait (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  52. def wait (arg0: Long, arg1: Int): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  53. def wait (arg0: Long): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()

Deprecated Value Members

  1. def pendingFutures : Long

    Returns the amount of futures queued for execution

    Returns the amount of futures queued for execution

    Definition Classes
    MessageDispatcher
    Annotations
    @deprecated
    Deprecated

    Will be removed for Akka 2.0, use 'tasks' instead

Inherited from ExecutorBasedEventDrivenDispatcher

Inherited from MessageDispatcher

Inherited from AnyRef

Inherited from Any