Class AbstractPersistentActorWithAtLeastOnceDelivery
- All Implemented Interfaces:
Actor
,Stash
,StashFactory
,StashSupport
,UnrestrictedStash
,RequiresMessageQueue<DequeBasedMessageQueueSemantics>
,AbstractPersistentActorLike
,AtLeastOnceDeliveryLike
,Eventsourced
,PersistenceIdentity
,PersistenceRecovery
,PersistenceStash
,Snapshotter
Use this class instead of AbstractPersistentActor
to send messages
with at-least-once delivery semantics to destinations.
Full documentation in AtLeastOnceDelivery
.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.pekko.actor.AbstractActor
AbstractActor.ActorContext, AbstractActor.Receive
Nested classes/interfaces inherited from interface org.apache.pekko.actor.Actor
Actor.emptyBehavior$, Actor.ignoringBehavior$
Nested classes/interfaces inherited from interface org.apache.pekko.persistence.Eventsourced
Eventsourced.AsyncHandlerInvocation, Eventsourced.AsyncHandlerInvocation$, Eventsourced.PendingHandlerInvocation, Eventsourced.RecoveryTick, Eventsourced.RecoveryTick$, Eventsourced.StashingHandlerInvocation, Eventsourced.StashingHandlerInvocation$, Eventsourced.State
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Java API: Send the message created by thedeliveryIdToMessage
function to thedestination
actor.void
deliver
(ActorSelection destination, Function<Long, Object> deliveryIdToMessage) Java API: Send the message created by thedeliveryIdToMessage
function to thedestination
actor.Methods inherited from class org.apache.pekko.persistence.AbstractPersistentActor
createReceive, createReceiveRecover, journal, org$apache$pekko$actor$StashSupport$_setter_$mailbox_$eq, snapshotStore
Methods inherited from class org.apache.pekko.actor.AbstractActor
context, emptyBehavior, getContext, getSelf, getSender, org$apache$pekko$actor$Actor$_setter_$context_$eq, org$apache$pekko$actor$Actor$_setter_$self_$eq, postRestart, postStop, preRestart, preRestart, preStart, receive, receiveBuilder, self, supervisorStrategy
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.persistence.AbstractPersistentActorLike
defer, deferAsync, persist, persistAll, persistAllAsync, persistAsync, receiveCommand, receiveRecover
Methods inherited from interface org.apache.pekko.actor.Actor
context, org$apache$pekko$actor$Actor$_setter_$context_$eq, org$apache$pekko$actor$Actor$_setter_$self_$eq, postRestart, preStart, receive, self, sender, supervisorStrategy
Methods inherited from interface org.apache.pekko.persistence.AtLeastOnceDeliveryLike
aroundPostStop, aroundPreRestart, aroundReceive, cancelRedeliveryTask, confirmDelivery, deliverySequenceNr_$eq, getDeliverySnapshot, internalDeliver, internalDeliver, maxUnconfirmedMessages, nextDeliverySequenceNr, numberOfUnconfirmed, onReplaySuccess, redeliverInterval, redeliverOverdue, redeliverTask_$eq, redeliveryBurstLimit, send, setDeliverySnapshot, startRedeliverTask, super$aroundPostStop, super$aroundPreRestart, super$aroundReceive, super$onReplaySuccess, unconfirmed_$eq, warnAfterNumberOfUnconfirmedAttempts
Methods inherited from interface org.apache.pekko.persistence.Eventsourced
_lastSequenceNr_$eq, aroundPostRestart, aroundPreStart, batchAtomicWrite, changeState, currentState_$eq, deleteMessages, eventBatch_$eq, flushBatch, flushJournalBatch, internalDefer, internalDeferAsync, internalDeleteMessagesBeforeSnapshot, internalPersist, internalPersistAll, internalPersistAllAsync, internalPersistAsync, journal, journalBatch_$eq, lastSequenceNr, log, nextSequenceNr, onPersistFailure, onPersistRejected, onRecoveryFailure, peekApplyHandler, pendingStashingPersistInvocations_$eq, recovering, recoveryFinished, recoveryRunning, recoveryStarted, requestRecoveryPermit, sendBatchedEventsToJournal, sequenceNr_$eq, setLastSequenceNr, snapshotSequenceNr, snapshotStore, snapshotterId, startRecovery, stash, stashInternally, super$aroundPostRestart, super$aroundPreStart, super$stash, super$unhandled, unhandled, unstashAll, unstashInternally, updateLastSequenceNr, waitingRecoveryPermit, writeEventFailed, writeEventRejected, writeEventSucceeded, writeInProgress_$eq
Methods inherited from interface org.apache.pekko.persistence.PersistenceIdentity
journalPluginId, persistenceId, snapshotPluginId
Methods inherited from interface org.apache.pekko.persistence.PersistenceRecovery
recovery
Methods inherited from interface org.apache.pekko.persistence.PersistenceStash
internalStashOverflowStrategy
Methods inherited from interface org.apache.pekko.persistence.Snapshotter
deleteSnapshot, deleteSnapshots, loadSnapshot, saveSnapshot
Methods inherited from interface org.apache.pekko.actor.StashFactory
createStash
Methods inherited from interface org.apache.pekko.actor.StashSupport
actorCell, clearStash, context, enqueueFirst, mailbox, org$apache$pekko$actor$StashSupport$_setter_$mailbox_$eq, prepend, self, theStash_$eq, unstash, unstashAll
Methods inherited from interface org.apache.pekko.actor.UnrestrictedStash
postStop, preRestart, super$postStop, super$preRestart
-
Constructor Details
-
AbstractPersistentActorWithAtLeastOnceDelivery
public AbstractPersistentActorWithAtLeastOnceDelivery()
-
-
Method Details
-
deliver
Java API: Send the message created by thedeliveryIdToMessage
function to thedestination
actor. It will retry sending the message until the delivery is confirmed withAtLeastOnceDeliveryLike.confirmDelivery(long)
. Correlation betweendeliver
andconfirmDelivery
is performed with thedeliveryId
that is provided as parameter to thedeliveryIdToMessage
function. ThedeliveryId
is typically passed in the message to the destination, which replies with a message containing the samedeliveryId
.The
deliveryId
is a strictly monotonically increasing sequence number without gaps. The same sequence is used for all destinations, i.e. when sending to multiple destinations the destinations will see gaps in the sequence if no translation is performed.During recovery this method will not send out the message, but it will be sent later if no matching
confirmDelivery
was performed.This method will throw
AtLeastOnceDelivery.MaxUnconfirmedMessagesExceededException
ifAtLeastOnceDeliveryLike.numberOfUnconfirmed()
is greater than or equal toAtLeastOnceDeliveryLike.maxUnconfirmedMessages()
. -
deliver
Java API: Send the message created by thedeliveryIdToMessage
function to thedestination
actor. It will retry sending the message until the delivery is confirmed withAtLeastOnceDeliveryLike.confirmDelivery(long)
. Correlation betweendeliver
andconfirmDelivery
is performed with thedeliveryId
that is provided as parameter to thedeliveryIdToMessage
function. ThedeliveryId
is typically passed in the message to the destination, which replies with a message containing the samedeliveryId
.The
deliveryId
is a strictly monotonically increasing sequence number without gaps. The same sequence is used for all destinations, i.e. when sending to multiple destinations the destinations will see gaps in the sequence if no translation is performed.During recovery this method will not send out the message, but it will be sent later if no matching
confirmDelivery
was performed.This method will throw
AtLeastOnceDelivery.MaxUnconfirmedMessagesExceededException
ifAtLeastOnceDeliveryLike.numberOfUnconfirmed()
is greater than or equal toAtLeastOnceDeliveryLike.maxUnconfirmedMessages()
.
-