Package org.apache.pekko.dispatch
Class MessageDispatcher
java.lang.Object
org.apache.pekko.dispatch.MessageDispatcher
- All Implemented Interfaces:
Executor,BatchingExecutor,scala.concurrent.ExecutionContext,scala.concurrent.ExecutionContextExecutor
- Direct Known Subclasses:
CallingThreadDispatcher,Dispatcher
public abstract class MessageDispatcher
extends Object
implements BatchingExecutor, scala.concurrent.ExecutionContextExecutor
-
Nested Class Summary
Nested classes/interfaces inherited from interface scala.concurrent.ExecutionContext
scala.concurrent.ExecutionContext.Implicits$, scala.concurrent.ExecutionContext.parasitic$ -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Index<MessageDispatcher,ActorRef> actors()final voidattach(org.apache.pekko.actor.ActorCell actor) 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).protected abstract org.apache.pekko.dispatch.MailboxcreateMailbox(Cell actor, MailboxType mailboxType) Creates and returns a mailbox for the given actor.static final booleandebug()final voiddetach(org.apache.pekko.actor.ActorCell actor) Detaches the specified actor instance from this dispatcherprotected abstract voidWill be called when the dispatcher is to queue an invocation for executionprotected abstract voidexecuteTask(TaskInvocation invocation) INTERNAL APIabstract Stringid()Identifier of this dispatcher, corresponds to the full key of the dispatcher configuration.final longprotected final booleanINTERNAL APIorg.apache.pekko.dispatch.Mailboxesstatic voidprotected voidregister(org.apache.pekko.actor.ActorCell actor) If you override it, you must call it.protected abstract booleanregisterForExecution(org.apache.pekko.dispatch.Mailbox mbox, boolean hasMessageHint, boolean hasSystemMessageHint) Suggest to register the provided mailbox for executionvoidstatic intprotected final booleanprotected voidresume(org.apache.pekko.actor.ActorCell actor) After the call to this method, the dispatcher must begin any new message processing for the specified referencestatic intprotected abstract voidshutdown()Called one time every time an actor is detached from this dispatcher and this dispatcher has no actors left attached Must be idempotentprotected abstract scala.concurrent.duration.FiniteDurationWhen the dispatcher no longer has any actors registered, how long will it wait until it shuts itself down, defaulting to your pekko configs "pekko.actor.default-dispatcher.shutdown-timeout" or default specified in reference.confprotected voidsuspend(org.apache.pekko.actor.ActorCell actor) After the call to this method, the dispatcher mustn't begin any new message processing for the specified referenceprotected abstract voidsystemDispatch(org.apache.pekko.actor.ActorCell receiver, SystemMessage invocation) Will be called when the dispatcher is to queue an invocation for executionprotected abstract intINTERNAL APIprotected abstract scala.concurrent.duration.DurationINTERNAL APIprotected final voidprotected voidunregister(org.apache.pekko.actor.ActorCell actor) If you override it, you must call it.static intMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.pekko.dispatch.BatchingExecutor
batchable, executeMethods inherited from interface scala.concurrent.ExecutionContext
execute, prepare
-
Constructor Details
-
MessageDispatcher
-
-
Method Details
-
UNSCHEDULED
public static int UNSCHEDULED() -
SCHEDULED
public static int SCHEDULED() -
RESCHEDULED
public static int RESCHEDULED() -
debug
public static final boolean debug() -
actors
-
printActors
public static void printActors() -
configurator
-
mailboxes
public org.apache.pekko.dispatch.Mailboxes mailboxes() -
eventStream
-
inhabitants
public final long inhabitants() -
createMailbox
protected abstract org.apache.pekko.dispatch.Mailbox createMailbox(Cell actor, MailboxType mailboxType) Creates and returns a mailbox for the given actor. -
id
Identifier of this dispatcher, corresponds to the full key of the dispatcher configuration. -
attach
public final void attach(org.apache.pekko.actor.ActorCell actor) 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). -
detach
public final void detach(org.apache.pekko.actor.ActorCell actor) Detaches the specified actor instance from this dispatcher -
resubmitOnBlock
protected final boolean resubmitOnBlock()- Specified by:
resubmitOnBlockin interfaceBatchingExecutor
-
unbatchedExecute
- Specified by:
unbatchedExecutein interfaceBatchingExecutor
-
reportFailure
- Specified by:
reportFailurein interfacescala.concurrent.ExecutionContext
-
register
protected void register(org.apache.pekko.actor.ActorCell actor) If you override it, you must call it. But only ever once. See "attach" for only invocation.INTERNAL API
-
unregister
protected void unregister(org.apache.pekko.actor.ActorCell actor) If you override it, you must call it. But only ever once. See "detach" for the only invocationINTERNAL API
-
shutdownTimeout
protected abstract 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 pekko configs "pekko.actor.default-dispatcher.shutdown-timeout" or default specified in reference.confINTERNAL API
-
suspend
protected void suspend(org.apache.pekko.actor.ActorCell actor) After the call to this method, the dispatcher mustn't begin any new message processing for the specified reference -
resume
protected void resume(org.apache.pekko.actor.ActorCell actor) After the call to this method, the dispatcher must begin any new message processing for the specified reference -
systemDispatch
protected abstract void systemDispatch(org.apache.pekko.actor.ActorCell receiver, SystemMessage invocation) Will be called when the dispatcher is to queue an invocation for executionINTERNAL API
-
dispatch
Will be called when the dispatcher is to queue an invocation for executionINTERNAL API
-
registerForExecution
protected abstract boolean registerForExecution(org.apache.pekko.dispatch.Mailbox mbox, boolean hasMessageHint, boolean hasSystemMessageHint) Suggest to register the provided mailbox for executionINTERNAL API
-
throughput
protected abstract int throughput()INTERNAL API -
throughputDeadlineTime
protected abstract scala.concurrent.duration.Duration throughputDeadlineTime()INTERNAL API -
isThroughputDeadlineTimeDefined
protected final boolean isThroughputDeadlineTimeDefined()INTERNAL API -
executeTask
INTERNAL API -
shutdown
protected abstract void shutdown()Called one time every time an actor is detached from this dispatcher and this dispatcher has no actors left attached Must be idempotentINTERNAL API
-