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()
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).MessageDispatcherConfigurator
configurator()
protected abstract org.apache.pekko.dispatch.Mailbox
createMailbox(Cell actor, MailboxType mailboxType)
Creates and returns a mailbox for the given actor.static boolean
debug()
void
detach(org.apache.pekko.actor.ActorCell actor)
Detaches the specified actor instance from this dispatcherprotected abstract void
dispatch(org.apache.pekko.actor.ActorCell receiver, Envelope invocation)
Will be called when the dispatcher is to queue an invocation for executionEventStream
eventStream()
protected abstract void
executeTask(TaskInvocation invocation)
INTERNAL APIabstract java.lang.String
id()
Identifier of this dispatcher, corresponds to the full key of the dispatcher configuration.long
inhabitants()
protected boolean
isThroughputDeadlineTimeDefined()
INTERNAL APIorg.apache.pekko.dispatch.Mailboxes
mailboxes()
static void
printActors()
protected void
register(org.apache.pekko.actor.ActorCell actor)
If you override it, you must call it.protected abstract boolean
registerForExecution(org.apache.pekko.dispatch.Mailbox mbox, boolean hasMessageHint, boolean hasSystemMessageHint)
Suggest to register the provided mailbox for executionvoid
reportFailure(java.lang.Throwable t)
static int
RESCHEDULED()
protected boolean
resubmitOnBlock()
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 referencestatic int
SCHEDULED()
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 idempotentprotected 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.confprotected 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 referenceprotected abstract void
systemDispatch(org.apache.pekko.actor.ActorCell receiver, SystemMessage invocation)
Will be called when the dispatcher is to queue an invocation for executionprotected abstract int
throughput()
INTERNAL APIprotected abstract scala.concurrent.duration.Duration
throughputDeadlineTime()
INTERNAL APIprotected void
unbatchedExecute(java.lang.Runnable r)
protected void
unregister(org.apache.pekko.actor.ActorCell actor)
If you override it, you must call it.static int
UNSCHEDULED()
-
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:
resubmitOnBlock
in interfaceBatchingExecutor
-
unbatchedExecute
protected final void unbatchedExecute(java.lang.Runnable r)
- Specified by:
unbatchedExecute
in interfaceBatchingExecutor
-
reportFailure
public void reportFailure(java.lang.Throwable t)
- Specified by:
reportFailure
in 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
-
-