Interface AtLeastOnceDeliveryLike
-
- All Superinterfaces:
Actor
,Eventsourced
,PersistenceIdentity
,PersistenceRecovery
,PersistenceStash
,RequiresMessageQueue<DequeBasedMessageQueueSemantics>
,Snapshotter
,Stash
,StashFactory
,StashSupport
,UnrestrictedStash
- All Known Subinterfaces:
AtLeastOnceDelivery
- All Known Implementing Classes:
AbstractPersistentActorWithAtLeastOnceDelivery
public interface AtLeastOnceDeliveryLike extends Eventsourced
- See Also:
AtLeastOnceDelivery
-
-
Nested Class Summary
-
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
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
aroundPostStop()
INTERNAL APIvoid
aroundPreRestart(java.lang.Throwable reason, scala.Option<java.lang.Object> message)
INTERNAL APIvoid
aroundReceive(scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> receive, java.lang.Object message)
INTERNAL APIvoid
cancelRedeliveryTask()
boolean
confirmDelivery(long deliveryId)
Call this method when a message has been confirmed by the destination, or to abort re-sending.void
deliverySequenceNr_$eq(long x$1)
AtLeastOnceDelivery.AtLeastOnceDeliverySnapshot
getDeliverySnapshot()
Full state of theAtLeastOnceDelivery
.void
internalDeliver(ActorPath destination, scala.Function1<java.lang.Object,java.lang.Object> deliveryIdToMessage)
INTERNAL APIvoid
internalDeliver(ActorSelection destination, scala.Function1<java.lang.Object,java.lang.Object> deliveryIdToMessage)
INTERNAL APIint
maxUnconfirmedMessages()
Maximum number of unconfirmed messages that this actor is allowed to hold in memory.long
nextDeliverySequenceNr()
int
numberOfUnconfirmed()
Number of messages that have not been confirmed yet.void
onReplaySuccess()
INTERNAL API.scala.concurrent.duration.FiniteDuration
redeliverInterval()
Interval between redelivery attempts.void
redeliverOverdue()
void
redeliverTask_$eq(scala.Option<Cancellable> x$1)
int
redeliveryBurstLimit()
Maximum number of unconfirmed messages that will be sent at each redelivery burst (burst frequency is half of the redelivery interval).void
send(long deliveryId, org.apache.pekko.persistence.AtLeastOnceDelivery.Internal.Delivery d, long timestamp)
void
setDeliverySnapshot(AtLeastOnceDelivery.AtLeastOnceDeliverySnapshot snapshot)
If snapshot fromgetDeliverySnapshot()
was saved it will be received during recovery in aSnapshotOffer
message and should be set with this method.void
startRedeliverTask()
void
super$aroundPostStop()
INTERNAL APIvoid
super$aroundPreRestart(java.lang.Throwable reason, scala.Option<java.lang.Object> message)
INTERNAL APIvoid
super$aroundReceive(scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> receive, java.lang.Object message)
INTERNAL APIvoid
super$onReplaySuccess()
void
unconfirmed_$eq(scala.collection.immutable.SortedMap<java.lang.Object,org.apache.pekko.persistence.AtLeastOnceDelivery.Internal.Delivery> x$1)
int
warnAfterNumberOfUnconfirmedAttempts()
After this number of delivery attempts anAtLeastOnceDelivery.UnconfirmedWarning
message will be sent toself
.-
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.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, receiveCommand, receiveRecover, 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
-
-
-
-
Method Detail
-
aroundPostStop
void aroundPostStop()
INTERNAL API- Specified by:
aroundPostStop
in interfaceActor
- Specified by:
aroundPostStop
in interfaceEventsourced
-
aroundPreRestart
void aroundPreRestart(java.lang.Throwable reason, scala.Option<java.lang.Object> message)
INTERNAL API- Specified by:
aroundPreRestart
in interfaceActor
- Specified by:
aroundPreRestart
in interfaceEventsourced
-
aroundReceive
void aroundReceive(scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> receive, java.lang.Object message)
INTERNAL API- Specified by:
aroundReceive
in interfaceActor
- Specified by:
aroundReceive
in interfaceEventsourced
- Parameters:
receive
- current behavior.message
- current message.
-
cancelRedeliveryTask
void cancelRedeliveryTask()
-
confirmDelivery
boolean confirmDelivery(long deliveryId)
Call this method when a message has been confirmed by the destination, or to abort re-sending.- Returns:
true
the first time thedeliveryId
is confirmed, i.e.false
for duplicate confirm- See Also:
#deliver
-
deliverySequenceNr_$eq
void deliverySequenceNr_$eq(long x$1)
-
getDeliverySnapshot
AtLeastOnceDelivery.AtLeastOnceDeliverySnapshot getDeliverySnapshot()
Full state of theAtLeastOnceDelivery
. It can be saved withSnapshotter.saveSnapshot(java.lang.Object)
. During recovery the snapshot received inSnapshotOffer
should be set withsetDeliverySnapshot(org.apache.pekko.persistence.AtLeastOnceDelivery.AtLeastOnceDeliverySnapshot)
.The
AtLeastOnceDeliverySnapshot
contains the full delivery state, including unconfirmed messages. If you need a custom snapshot for other parts of the actor state you must also include theAtLeastOnceDeliverySnapshot
. It is serialized using protobuf with the ordinary Akka serialization mechanism. It is easiest to include the bytes of theAtLeastOnceDeliverySnapshot
as a blob in your custom snapshot.
-
internalDeliver
void internalDeliver(ActorPath destination, scala.Function1<java.lang.Object,java.lang.Object> deliveryIdToMessage)
INTERNAL API
-
internalDeliver
void internalDeliver(ActorSelection destination, scala.Function1<java.lang.Object,java.lang.Object> deliveryIdToMessage)
INTERNAL API
-
maxUnconfirmedMessages
int maxUnconfirmedMessages()
Maximum number of unconfirmed messages that this actor is allowed to hold in memory. If this number is exceed#deliver
will not accept more messages and it will throwAtLeastOnceDelivery.MaxUnconfirmedMessagesExceededException
.The default value can be configured with the
pekko.persistence.at-least-once-delivery.max-unconfirmed-messages
configuration key. This method can be overridden by implementation classes to return non-default values.
-
nextDeliverySequenceNr
long nextDeliverySequenceNr()
-
numberOfUnconfirmed
int numberOfUnconfirmed()
Number of messages that have not been confirmed yet.
-
onReplaySuccess
void onReplaySuccess()
Description copied from interface:Eventsourced
INTERNAL API. Called whenever a message replay succeeds. May be implemented by subclass.- Specified by:
onReplaySuccess
in interfaceEventsourced
-
redeliverInterval
scala.concurrent.duration.FiniteDuration redeliverInterval()
Interval between redelivery attempts.The default value can be configured with the
pekko.persistence.at-least-once-delivery.redeliver-interval
configuration key. This method can be overridden by implementation classes to return non-default values.
-
redeliverOverdue
void redeliverOverdue()
-
redeliverTask_$eq
void redeliverTask_$eq(scala.Option<Cancellable> x$1)
-
redeliveryBurstLimit
int redeliveryBurstLimit()
Maximum number of unconfirmed messages that will be sent at each redelivery burst (burst frequency is half of the redelivery interval). If there's a lot of unconfirmed messages (e.g. if the destination is not available for a long time), this helps to prevent an overwhelming amount of messages to be sent at once.The default value can be configured with the
pekko.persistence.at-least-once-delivery.redelivery-burst-limit
configuration key. This method can be overridden by implementation classes to return non-default values.
-
send
void send(long deliveryId, org.apache.pekko.persistence.AtLeastOnceDelivery.Internal.Delivery d, long timestamp)
-
setDeliverySnapshot
void setDeliverySnapshot(AtLeastOnceDelivery.AtLeastOnceDeliverySnapshot snapshot)
If snapshot fromgetDeliverySnapshot()
was saved it will be received during recovery in aSnapshotOffer
message and should be set with this method.
-
startRedeliverTask
void startRedeliverTask()
-
super$aroundPostStop
void super$aroundPostStop()
INTERNAL API- Specified by:
super$aroundPostStop
in interfaceEventsourced
-
super$aroundPreRestart
void super$aroundPreRestart(java.lang.Throwable reason, scala.Option<java.lang.Object> message)
INTERNAL API- Specified by:
super$aroundPreRestart
in interfaceEventsourced
-
super$aroundReceive
void super$aroundReceive(scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> receive, java.lang.Object message)
INTERNAL API- Specified by:
super$aroundReceive
in interfaceEventsourced
-
super$onReplaySuccess
void super$onReplaySuccess()
-
unconfirmed_$eq
void unconfirmed_$eq(scala.collection.immutable.SortedMap<java.lang.Object,org.apache.pekko.persistence.AtLeastOnceDelivery.Internal.Delivery> x$1)
-
warnAfterNumberOfUnconfirmedAttempts
int warnAfterNumberOfUnconfirmedAttempts()
After this number of delivery attempts anAtLeastOnceDelivery.UnconfirmedWarning
message will be sent toself
. The count is reset after a restart.The default value can be configured with the
pekko.persistence.at-least-once-delivery.warn-after-number-of-unconfirmed-attempts
configuration key. This method can be overridden by implementation classes to return non-default values.
-
-