akka.persistence
Class UntypedPersistentActorWithAtLeastOnceDelivery

java.lang.Object
  extended by akka.actor.UntypedActor
      extended by akka.persistence.UntypedPersistentActor
          extended by akka.persistence.UntypedPersistentActorWithAtLeastOnceDelivery
All Implemented Interfaces:
Actor, Stash, StashFactory, StashSupport, UnrestrictedStash, RequiresMessageQueue<DequeBasedMessageQueueSemantics>, AtLeastOnceDelivery, Eventsourced, Processor, ProcessorImpl, Recovery, Snapshotter

public abstract class UntypedPersistentActorWithAtLeastOnceDelivery
extends UntypedPersistentActor
implements AtLeastOnceDelivery

Java API: Use this class instead of UntypedPersistentActor to send messages with at-least-once delivery semantics to destinations. Full documentation in AtLeastOnceDelivery.

See Also:
AtLeastOnceDelivery

Nested Class Summary
 
Nested classes/interfaces inherited from interface akka.persistence.AtLeastOnceDelivery
AtLeastOnceDelivery.AtLeastOnceDeliverySnapshot, AtLeastOnceDelivery.AtLeastOnceDeliverySnapshot$, AtLeastOnceDelivery.Internal$, AtLeastOnceDelivery.MaxUnconfirmedMessagesExceededException, AtLeastOnceDelivery.UnconfirmedDelivery, AtLeastOnceDelivery.UnconfirmedDelivery$, AtLeastOnceDelivery.UnconfirmedWarning, AtLeastOnceDelivery.UnconfirmedWarning$
 
Nested classes/interfaces inherited from interface akka.persistence.Recovery
Recovery.State
 
Nested classes/interfaces inherited from interface akka.actor.Actor
Actor.emptyBehavior$
 
Nested classes/interfaces inherited from interface akka.persistence.Eventsourced
Eventsourced.PendingHandlerInvocation
 
Constructor Summary
UntypedPersistentActorWithAtLeastOnceDelivery()
           
 
Method Summary
 void deliver(ActorPath destination, Function<java.lang.Long,java.lang.Object> deliveryIdToMessage)
          Java API: Send the message created by the deliveryIdToMessage function to the destination actor.
 
Methods inherited from class akka.persistence.UntypedPersistentActor
defer, defer, onReceive, onReceiveCommand, onReceiveRecover, persist, persist, persistAsync, persistAsync, receiveCommand, receiveRecover
 
Methods inherited from class akka.actor.UntypedActor
getContext, getSelf, getSender, postRestart, postStop, preRestart, preStart, receive, supervisorStrategy, unhandled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface akka.persistence.AtLeastOnceDelivery
aroundPostStop, aroundPreRestart, aroundReceive, confirmDelivery, defaultMaxUnconfirmedMessages, defaultRedeliverInterval, defaultWarnAfterNumberOfUnconfirmedAttempts, deliver, deliverySequenceNr, getDeliverySnapshot, maxUnconfirmedMessages, nextDeliverySequenceNr, numberOfUnconfirmed, redeliverInterval, redeliverOverdue, redeliverTask, send, setDeliverySnapshot, unconfirmed, warnAfterNumberOfUnconfirmedAttempts
 
Methods inherited from interface akka.persistence.Processor
persistenceId
 
Methods inherited from interface akka.persistence.ProcessorImpl
_persistenceId, aroundPreStart, deleteMessage, deleteMessage, deleteMessages, deleteMessages, flushJournalBatch, initializing, instanceId, nextSequenceNr, onRecoveryCompleted, onRecoveryFailure, onReplayFailure, onReplaySuccess, preRestart, preRestartDefault, preStart, processing, processorBatch, processorId, recoveryFinished, recoveryRunning, sequenceNr, snapshotterId, unhandled, unstashFilterPredicate
 
Methods inherited from interface akka.persistence.Recovery
_currentPersistent, _currentState, _lastSequenceNr, _recoveryFailureCause, _recoveryFailureMessage, currentPersistentMessage, extension, getCurrentPersistentMessage, journal, lastSequenceNr, prepareRestart, receiverStash, recoveryPending, recoveryStarted, replayFailed, replayStarted, runReceive, snapshotSequenceNr, updateLastSequenceNr, updateLastSequenceNr, withCurrentPersistent
 
Methods inherited from interface akka.persistence.Snapshotter
deleteSnapshot, deleteSnapshots, loadSnapshot, saveSnapshot, snapshotStore
 
Methods inherited from interface akka.actor.UnrestrictedStash
postStop
 
Methods inherited from interface akka.actor.Actor
aroundPostRestart, context, postRestart, receive, self, sender, supervisorStrategy
 
Methods inherited from interface akka.actor.StashSupport
actorCell, capacity, clearStash, context, enqueueFirst, mailbox, prepend, self, stash, theStash, unstash, unstashAll, unstashAll
 
Methods inherited from interface akka.actor.StashFactory
createStash
 
Methods inherited from interface akka.persistence.Eventsourced
aroundPreRestart, aroundReceive, currentState, defer, defer, flushBatch, initialBehavior, pendingInvocations, pendingStashingPersistInvocations, persist, persist, persistAsync, persistAsync, persistingEvents, postStop, preRestart, processingCommands, processorStash, recovering, recoveryBehavior, resequenceableEventBatch, unstashAll, useProcessorBatching
 

Constructor Detail

UntypedPersistentActorWithAtLeastOnceDelivery

public UntypedPersistentActorWithAtLeastOnceDelivery()
Method Detail

deliver

public void deliver(ActorPath destination,
                    Function<java.lang.Long,java.lang.Object> deliveryIdToMessage)
Java API: Send the message created by the deliveryIdToMessage function to the destination actor. It will retry sending the message until the delivery is confirmed with AtLeastOnceDelivery.confirmDelivery(long). Correlation between deliver and confirmDelivery is performed with the deliveryId that is provided as parameter to the deliveryIdToMessage function. The deliveryId is typically passed in the message to the destination, which replies with a message containing the same deliveryId.

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 if numberOfUnconfirmed is greater than or equal to AtLeastOnceDelivery.maxUnconfirmedMessages().

Parameters:
destination - (undocumented)
deliveryIdToMessage - (undocumented)