t

akka.persistence

PersistentView

trait PersistentView extends Actor with Snapshotter with Stash with StashFactory with PersistenceIdentity with PersistenceRecovery with ActorLogging

A view replicates the persistent message stream of a PersistentActor. Implementation classes receive the message stream directly from the Journal. These messages can be processed to update internal state in order to maintain an (eventual consistent) view of the state of the corresponding persistent actor. A persistent view can also run on a different node, provided that a replicated journal is used.

Implementation classes refer to a persistent actors' message stream by implementing persistenceId with the corresponding (shared) identifier value.

Views can also store snapshots of internal state by calling PersistentView#autoUpdate. The snapshots of a view are independent of those of the referenced persistent actor. During recovery, a saved snapshot is offered to the view with a SnapshotOffer message, followed by replayed messages, if any, that are younger than the snapshot. Default is to offer the latest saved snapshot.

By default, a view automatically updates itself with an interval returned by autoUpdateInterval. This method can be overridden by implementation classes to define a view instance-specific update interval. The default update interval for all views of an actor system can be configured with the akka.persistence.view.auto-update-interval configuration key. Applications may trigger additional view updates by sending the view Update requests. See also methods

Annotations
@deprecated
Deprecated

(Since version 2.4) use Persistence Query instead

Source
PersistentView.scala
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PersistentView
  2. ActorLogging
  3. PersistenceRecovery
  4. PersistenceIdentity
  5. StashFactory
  6. Stash
  7. RequiresMessageQueue
  8. UnrestrictedStash
  9. StashSupport
  10. Snapshotter
  11. Actor
  12. AnyRef
  13. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type Receive = PartialFunction[Any, Unit]
    Definition Classes
    Actor

Abstract Value Members

  1. abstract def persistenceId: String

    Id of the persistent entity for which messages should be replayed.

    Id of the persistent entity for which messages should be replayed.

    Definition Classes
    PersistenceIdentity
  2. abstract def receive: actor.Actor.Receive

    This defines the initial actor behavior, it must return a partial function with the actor logic.

    This defines the initial actor behavior, it must return a partial function with the actor logic.

    Definition Classes
    Actor
  3. abstract def viewId: String

    View id is used as identifier for snapshots performed by this PersistentView.

    View id is used as identifier for snapshots performed by this PersistentView. This allows the View to keep separate snapshots of data than the PersistentActor originating the message stream.

    The usual case is to have a *different* id set as viewId than persistenceId, although it is possible to share the same id with an PersistentActor - for example to decide about snapshots based on some average or sum, calculated by this view.

    Example:

    class SummingView extends PersistentView {
      override def persistenceId = "count-123"
      override def viewId        = "count-123-sum" // this view is performing summing,
                                                   // so this view's snapshots reside under the "-sum" suffixed id
    
      // ...
    }

Concrete Value Members

  1. def autoUpdate: Boolean

    If true, this view automatically updates itself with an interval specified by autoUpdateInterval.

    If true, this view automatically updates itself with an interval specified by autoUpdateInterval. If false, applications must explicitly update this view by sending Update requests. The default value can be configured with the akka.persistence.view.auto-update configuration key. This method can be overridden by implementation classes to return non-default values.

  2. def autoUpdateInterval: FiniteDuration

    The interval for automated updates.

    The interval for automated updates. The default value can be configured with the akka.persistence.view.auto-update-interval configuration key. This method can be overridden by implementation classes to return non-default values.

  3. def autoUpdateReplayMax: Long

    The maximum number of messages to replay per update.

    The maximum number of messages to replay per update. The default value can be configured with the akka.persistence.view.auto-update-replay-max configuration key. This method can be overridden by implementation classes to return non-default values.

  4. implicit val context: ActorContext

    Stores the context for this actor, including self, and sender.

    Stores the context for this actor, including self, and sender. It is implicit to support operations such as forward.

    WARNING: Only valid within the Actor itself, so do not close over it and publish it to other threads!

    akka.actor.ActorContext is the Scala API. getContext returns a akka.actor.UntypedActorContext, which is the Java API of the actor context.

    Definition Classes
    Actor
  5. def deleteSnapshot(sequenceNr: Long): Unit

    Deletes the snapshot identified by sequenceNr.

    Deletes the snapshot identified by sequenceNr.

    The PersistentActor will be notified about the status of the deletion via an DeleteSnapshotSuccess or DeleteSnapshotFailure message.

    Definition Classes
    Snapshotter
  6. def deleteSnapshots(criteria: SnapshotSelectionCriteria): Unit

    Deletes all snapshots matching criteria.

    Deletes all snapshots matching criteria.

    The PersistentActor will be notified about the status of the deletion via an DeleteSnapshotsSuccess or DeleteSnapshotsFailure message.

    Definition Classes
    Snapshotter
  7. def isPersistent: Boolean

    If true, the currently processed message was persisted (is sent from the Journal).

    If true, the currently processed message was persisted (is sent from the Journal). If false, the currently processed message comes from another actor (from "user-land").

  8. def journalPluginId: String

    Configuration id of the journal plugin servicing this persistent actor or view.

    Configuration id of the journal plugin servicing this persistent actor or view. When empty, looks in akka.persistence.journal.plugin to find configuration entry path. When configured, uses journalPluginId as absolute path to the journal configuration entry. Configuration entry must contain few required fields, such as class. See src/main/resources/reference.conf.

    Definition Classes
    PersistenceIdentity
  9. def lastSequenceNr: Long

    Highest received sequence number so far or 0L if this actor hasn't replayed any persistent events yet.

  10. def loadSnapshot(persistenceId: String, criteria: SnapshotSelectionCriteria, toSequenceNr: Long): Unit

    Instructs the snapshot store to load the specified snapshot and send it via an SnapshotOffer to the running PersistentActor.

    Instructs the snapshot store to load the specified snapshot and send it via an SnapshotOffer to the running PersistentActor.

    Definition Classes
    Snapshotter
  11. def log: LoggingAdapter
    Definition Classes
    ActorLogging
  12. def postRestart(reason: Throwable): Unit

    User overridable callback: By default it calls preStart().

    User overridable callback: By default it calls preStart().

    reason

    the Throwable that caused the restart to happen Is called right AFTER restart on the newly created Actor to allow reinitialization after an Actor crash.

    Definition Classes
    Actor
    Annotations
    @throws( classOf[Exception] )
  13. def postStop(): Unit

    Overridden callback.

    Overridden callback. Prepends all messages in the stash to the mailbox and clears the stash. Must be called when overriding this method, otherwise stashed messages won't be propagated to DeadLetters when actor stops.

    Definition Classes
    PersistentViewUnrestrictedStashActor
  14. def preRestart(reason: Throwable, message: Option[Any]): Unit

    Overridden callback.

    Overridden callback. Prepends all messages in the stash to the mailbox, clears the stash, stops all children and invokes the postStop() callback.

    reason

    the Throwable that caused the restart to happen

    message

    optionally the current message the actor processed when failing, if applicable Is called on a crashed Actor right BEFORE it is restarted to allow clean up of resources before Actor is terminated.

    Definition Classes
    PersistentViewUnrestrictedStashActor
  15. def preStart(): Unit

    Triggers an initial recovery, starting form a snapshot, if any, and replaying at most autoUpdateReplayMax messages (following that snapshot).

    Triggers an initial recovery, starting form a snapshot, if any, and replaying at most autoUpdateReplayMax messages (following that snapshot).

    Definition Classes
    PersistentViewActor
  16. def recovery: Recovery

    Called when the persistent actor is started for the first time.

    Called when the persistent actor is started for the first time. The returned Recovery object defines how the Actor will recover its persistent state before handling the first incoming message.

    To skip recovery completely return Recovery.none.

    Definition Classes
    PersistentViewPersistenceRecovery
  17. def saveSnapshot(snapshot: Any): Unit

    Saves a snapshot of this snapshotter's state.

    Saves a snapshot of this snapshotter's state.

    The PersistentActor will be notified about the success or failure of this via an SaveSnapshotSuccess or SaveSnapshotFailure message.

    Definition Classes
    Snapshotter
  18. implicit final val self: ActorRef

    The 'self' field holds the ActorRef for this actor.

    The 'self' field holds the ActorRef for this actor.

    Can be used to send messages to itself:

    self ! message
    

    Definition Classes
    Actor
  19. final def sender(): ActorRef

    The reference sender Actor of the last received message.

    The reference sender Actor of the last received message. Is defined if the message was sent from another Actor, else deadLetters in akka.actor.ActorSystem.

    WARNING: Only valid within the Actor itself, so do not close over it and publish it to other threads!

    Definition Classes
    Actor
  20. def snapshotPluginId: String

    Configuration id of the snapshot plugin servicing this persistent actor or view.

    Configuration id of the snapshot plugin servicing this persistent actor or view. When empty, looks in akka.persistence.snapshot-store.plugin to find configuration entry path. When configured, uses snapshotPluginId as absolute path to the snapshot store configuration entry. Configuration entry must contain few required fields, such as class. See src/main/resources/reference.conf.

    Definition Classes
    PersistenceIdentity
  21. def snapshotSequenceNr: Long

    Returns lastSequenceNr.

    Returns lastSequenceNr.

    Definition Classes
    PersistentViewSnapshotter
  22. def snapshotterId: String

    Returns viewId.

    Returns viewId.

    Definition Classes
    PersistentViewSnapshotter
  23. def stash(): Unit

    Adds the current message (the message that the actor received last) to the actor's stash.

    Adds the current message (the message that the actor received last) to the actor's stash.

    Definition Classes
    StashSupport
    Exceptions thrown

    IllegalStateException if the same message is stashed more than once

    StashOverflowException in case of a stash capacity violation

  24. def supervisorStrategy: SupervisorStrategy

    User overridable definition the strategy to use for supervising child actors.

    User overridable definition the strategy to use for supervising child actors.

    Definition Classes
    Actor
  25. def unhandled(message: Any): Unit

    User overridable callback.

    User overridable callback.

    Is called when a message isn't handled by the current behavior of the actor by default it fails with either a akka.actor.DeathPactException (in case of an unhandled akka.actor.Terminated message) or publishes an akka.actor.UnhandledMessage to the actor's system's akka.event.EventStream

    Definition Classes
    Actor
  26. def unstashAll(): Unit

    Prepends all messages in the stash to the mailbox, and then clears the stash.

    Prepends all messages in the stash to the mailbox, and then clears the stash.

    Messages from the stash are enqueued to the mailbox until the capacity of the mailbox (if any) has been reached. In case a bounded mailbox overflows, a MessageQueueAppendFailedException is thrown.

    The stash is guaranteed to be empty after calling unstashAll().

    Definition Classes
    StashSupport