|
Akka/Scala example source code file (SnapshotExample.scala)
The SnapshotExample.scala Akka example source codepackage sample.persistence import akka.actor._ import akka.persistence._ object SnapshotExample extends App { final case class ExampleState(received: List[String] = Nil) { def updated(s: String): ExampleState = copy(s :: received) override def toString = received.reverse.toString } class ExamplePersistentActor extends PersistentActor { def persistenceId: String = "sample-id-3" var state = ExampleState() def receiveCommand: Actor.Receive = { case "print" => println("current state = " + state) case "snap" => saveSnapshot(state) case SaveSnapshotSuccess(metadata) => // ... case SaveSnapshotFailure(metadata, reason) => // ... case s: String => persist(s) { evt => state = state.updated(evt) } } def receiveRecover: Actor.Receive = { case SnapshotOffer(_, s: ExampleState) => println("offered state = " + s) state = s case evt: String => state = state.updated(evt) } } val system = ActorSystem("example") val persistentActor = system.actorOf(Props(classOf[ExamplePersistentActor]), "persistentActor-3-scala") persistentActor ! "a" persistentActor ! "b" persistentActor ! "snap" persistentActor ! "c" persistentActor ! "d" persistentActor ! "print" Thread.sleep(1000) system.shutdown() } Other Akka source code examplesHere is a short list of links related to this Akka SnapshotExample.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.