Package org.apache.pekko.dispatch
Class MessageDispatcher
- java.lang.Object
-
- org.apache.pekko.dispatch.MessageDispatcher
-
- All Implemented Interfaces:
java.util.concurrent.Executor,BatchingExecutor,scala.concurrent.ExecutionContext,scala.concurrent.ExecutionContextExecutor
- Direct Known Subclasses:
CallingThreadDispatcher,Dispatcher
public abstract class MessageDispatcher extends java.lang.Object implements BatchingExecutor, scala.concurrent.ExecutionContextExecutor
-
-
Constructor Summary
Constructors Constructor Description MessageDispatcher(MessageDispatcherConfigurator configurator)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static Index<MessageDispatcher,ActorRef>actors()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).MessageDispatcherConfiguratorconfigurator()protected abstract org.apache.pekko.dispatch.MailboxcreateMailbox(Cell actor, MailboxType mailboxType)Creates and returns a mailbox for the given actor.static booleandebug()voiddetach(org.apache.pekko.actor.ActorCell actor)Detaches the specified actor instance from this dispatcherprotected abstract voiddispatch(org.apache.pekko.actor.ActorCell receiver, Envelope invocation)Will be called when the dispatcher is to queue an invocation for executionEventStreameventStream()protected abstract voidexecuteTask(TaskInvocation invocation)INTERNAL APIabstract java.lang.Stringid()Identifier of this dispatcher, corresponds to the full key of the dispatcher configuration.longinhabitants()protected booleanisThroughputDeadlineTimeDefined()INTERNAL APIorg.apache.pekko.dispatch.Mailboxesmailboxes()static voidprintActors()protected 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 executionvoidreportFailure(java.lang.Throwable t)static intRESCHEDULED()protected booleanresubmitOnBlock()protected 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 intSCHEDULED()protected 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.FiniteDurationshutdownTimeout()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.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 intthroughput()INTERNAL APIprotected abstract scala.concurrent.duration.DurationthroughputDeadlineTime()INTERNAL APIprotected voidunbatchedExecute(java.lang.Runnable r)protected voidunregister(org.apache.pekko.actor.ActorCell actor)If you override it, you must call it.static intUNSCHEDULED()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.pekko.dispatch.BatchingExecutor
batchable, execute
-
-
-
-
Constructor Detail
-
MessageDispatcher
public MessageDispatcher(MessageDispatcherConfigurator configurator)
-
-
Method Detail
-
UNSCHEDULED
public static int UNSCHEDULED()
-
SCHEDULED
public static int SCHEDULED()
-
RESCHEDULED
public static int RESCHEDULED()
-
debug
public static final boolean debug()
-
actors
public static Index<MessageDispatcher,ActorRef> actors()
-
printActors
public static void printActors()
-
configurator
public MessageDispatcherConfigurator configurator()
-
mailboxes
public org.apache.pekko.dispatch.Mailboxes mailboxes()
-
eventStream
public EventStream 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
public abstract java.lang.String 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
protected final void unbatchedExecute(java.lang.Runnable r)
- Specified by:
unbatchedExecutein interfaceBatchingExecutor
-
reportFailure
public void reportFailure(java.lang.Throwable t)
- 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
protected abstract void dispatch(org.apache.pekko.actor.ActorCell receiver, Envelope invocation)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
protected abstract void executeTask(TaskInvocation invocation)
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
-
-