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 akka.actor.Actor
Actor.emptyBehavior$, Actor.ignoringBehavior$
-
Nested classes/interfaces inherited from interface akka.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 voidaroundPostStop()INTERNAL APIvoidaroundPreRestart(java.lang.Throwable reason, scala.Option<java.lang.Object> message)INTERNAL APIvoidaroundReceive(scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> receive, java.lang.Object message)INTERNAL APIvoidcancelRedeliveryTask()booleanconfirmDelivery(long deliveryId)Call this method when a message has been confirmed by the destination, or to abort re-sending.voiddeliverySequenceNr_$eq(long x$1)AtLeastOnceDelivery.AtLeastOnceDeliverySnapshotgetDeliverySnapshot()Full state of theAtLeastOnceDelivery.voidinternalDeliver(ActorPath destination, scala.Function1<java.lang.Object,java.lang.Object> deliveryIdToMessage)INTERNAL APIvoidinternalDeliver(ActorSelection destination, scala.Function1<java.lang.Object,java.lang.Object> deliveryIdToMessage)INTERNAL APIintmaxUnconfirmedMessages()Maximum number of unconfirmed messages that this actor is allowed to hold in memory.longnextDeliverySequenceNr()intnumberOfUnconfirmed()Number of messages that have not been confirmed yet.voidonReplaySuccess()INTERNAL API.scala.concurrent.duration.FiniteDurationredeliverInterval()Interval between redelivery attempts.voidredeliverOverdue()voidredeliverTask_$eq(scala.Option<Cancellable> x$1)intredeliveryBurstLimit()Maximum number of unconfirmed messages that will be sent at each redelivery burst (burst frequency is half of the redelivery interval).voidsend(long deliveryId, akka.persistence.AtLeastOnceDelivery.Internal.Delivery d, long timestamp)voidsetDeliverySnapshot(AtLeastOnceDelivery.AtLeastOnceDeliverySnapshot snapshot)If snapshot fromgetDeliverySnapshot()was saved it will be received during recovery in aSnapshotOffermessage and should be set with this method.voidstartRedeliverTask()voidsuper$aroundPostStop()INTERNAL APIvoidsuper$aroundPreRestart(java.lang.Throwable reason, scala.Option<java.lang.Object> message)INTERNAL APIvoidsuper$aroundReceive(scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> receive, java.lang.Object message)INTERNAL APIvoidsuper$onReplaySuccess()voidunconfirmed_$eq(scala.collection.immutable.SortedMap<java.lang.Object,akka.persistence.AtLeastOnceDelivery.Internal.Delivery> x$1)intwarnAfterNumberOfUnconfirmedAttempts()After this number of delivery attempts anAtLeastOnceDelivery.UnconfirmedWarningmessage will be sent toself.-
Methods inherited from interface akka.actor.Actor
akka$actor$Actor$_setter_$context_$eq, akka$actor$Actor$_setter_$self_$eq, context, postRestart, preStart, receive, self, sender, supervisorStrategy
-
Methods inherited from interface akka.persistence.Eventsourced
_lastSequenceNr_$eq, aroundPostRestart, aroundPreStart, batchAtomicWrite, changeState, currentCommand, currentState_$eq, deleteMessages, eventBatch_$eq, flushBatch, flushJournalBatch, getAndClearInstrumentationContext, instrumentationContexts_$eq, internalDefer, internalDeferAsync, internalDeleteMessagesBeforeSnapshot, internalPersist, internalPersistAll, internalPersistAllAsync, internalPersistAsync, journal, journalBatch_$eq, lastSequenceNr, log, nextSequenceNr, onPersistFailure, onPersistRejected, onRecoveryFailure, onRecoveryFailureAndInstrumentation, 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 akka.persistence.PersistenceIdentity
journalPluginId, persistenceId, snapshotPluginId
-
Methods inherited from interface akka.persistence.PersistenceRecovery
recovery
-
Methods inherited from interface akka.persistence.PersistenceStash
internalStashOverflowStrategy
-
Methods inherited from interface akka.persistence.Snapshotter
deleteSnapshot, deleteSnapshots, loadSnapshot, saveSnapshot
-
Methods inherited from interface akka.actor.StashFactory
createStash
-
Methods inherited from interface akka.actor.StashSupport
actorCell, akka$actor$StashSupport$_setter_$mailbox_$eq, clearStash, context, enqueueFirst, mailbox, prepend, self, theStash_$eq, unstash, unstashAll
-
Methods inherited from interface akka.actor.UnrestrictedStash
postStop, preRestart, super$postStop, super$preRestart
-
-
-
-
Method Detail
-
aroundPostStop
void aroundPostStop()
INTERNAL API- Specified by:
aroundPostStopin interfaceActor- Specified by:
aroundPostStopin interfaceEventsourced
-
aroundPreRestart
void aroundPreRestart(java.lang.Throwable reason, scala.Option<java.lang.Object> message)INTERNAL API- Specified by:
aroundPreRestartin interfaceActor- Specified by:
aroundPreRestartin interfaceEventsourced
-
aroundReceive
void aroundReceive(scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> receive, java.lang.Object message)INTERNAL API- Specified by:
aroundReceivein interfaceActor- Specified by:
aroundReceivein 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:
truethe first time thedeliveryIdis confirmed, i.e.falsefor 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 inSnapshotOffershould be set withsetDeliverySnapshot(akka.persistence.AtLeastOnceDelivery.AtLeastOnceDeliverySnapshot).The
AtLeastOnceDeliverySnapshotcontains 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 theAtLeastOnceDeliverySnapshotas 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#deliverwill not accept more messages and it will throwAtLeastOnceDelivery.MaxUnconfirmedMessagesExceededException.The default value can be configured with the
akka.persistence.at-least-once-delivery.max-unconfirmed-messagesconfiguration 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:EventsourcedINTERNAL API. Called whenever a message replay succeeds. May be implemented by subclass.- Specified by:
onReplaySuccessin interfaceEventsourced
-
redeliverInterval
scala.concurrent.duration.FiniteDuration redeliverInterval()
Interval between redelivery attempts.The default value can be configured with the
akka.persistence.at-least-once-delivery.redeliver-intervalconfiguration 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
akka.persistence.at-least-once-delivery.redelivery-burst-limitconfiguration key. This method can be overridden by implementation classes to return non-default values.
-
send
void send(long deliveryId, akka.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 aSnapshotOffermessage and should be set with this method.
-
startRedeliverTask
void startRedeliverTask()
-
super$aroundPostStop
void super$aroundPostStop()
INTERNAL API- Specified by:
super$aroundPostStopin interfaceEventsourced
-
super$aroundPreRestart
void super$aroundPreRestart(java.lang.Throwable reason, scala.Option<java.lang.Object> message)INTERNAL API- Specified by:
super$aroundPreRestartin interfaceEventsourced
-
super$aroundReceive
void super$aroundReceive(scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> receive, java.lang.Object message)INTERNAL API- Specified by:
super$aroundReceivein interfaceEventsourced
-
super$onReplaySuccess
void super$onReplaySuccess()
-
unconfirmed_$eq
void unconfirmed_$eq(scala.collection.immutable.SortedMap<java.lang.Object,akka.persistence.AtLeastOnceDelivery.Internal.Delivery> x$1)
-
warnAfterNumberOfUnconfirmedAttempts
int warnAfterNumberOfUnconfirmedAttempts()
After this number of delivery attempts anAtLeastOnceDelivery.UnconfirmedWarningmessage will be sent toself. The count is reset after a restart.The default value can be configured with the
akka.persistence.at-least-once-delivery.warn-after-number-of-unconfirmed-attemptsconfiguration key. This method can be overridden by implementation classes to return non-default values.
-
-