Remove samples (#22288)
Add code, that was used for documentation to the appropriate projects or akka-docs.
This commit is contained in:
parent
b8cdcf3439
commit
958de6a916
373 changed files with 1201 additions and 17259 deletions
|
|
@ -0,0 +1,60 @@
|
|||
package scala.docs.persistence
|
||||
|
||||
//#persistent-actor-example
|
||||
import akka.actor._
|
||||
import akka.persistence._
|
||||
|
||||
case class Cmd(data: String)
|
||||
case class Evt(data: String)
|
||||
|
||||
case class ExampleState(events: List[String] = Nil) {
|
||||
def updated(evt: Evt): ExampleState = copy(evt.data :: events)
|
||||
def size: Int = events.length
|
||||
override def toString: String = events.reverse.toString
|
||||
}
|
||||
|
||||
class ExamplePersistentActor extends PersistentActor {
|
||||
override def persistenceId = "sample-id-1"
|
||||
|
||||
var state = ExampleState()
|
||||
|
||||
def updateState(event: Evt): Unit =
|
||||
state = state.updated(event)
|
||||
|
||||
def numEvents =
|
||||
state.size
|
||||
|
||||
val receiveRecover: Receive = {
|
||||
case evt: Evt => updateState(evt)
|
||||
case SnapshotOffer(_, snapshot: ExampleState) => state = snapshot
|
||||
}
|
||||
|
||||
val receiveCommand: Receive = {
|
||||
case Cmd(data) =>
|
||||
persist(Evt(s"${data}-${numEvents}"))(updateState)
|
||||
persist(Evt(s"${data}-${numEvents + 1}")) { event =>
|
||||
updateState(event)
|
||||
context.system.eventStream.publish(event)
|
||||
}
|
||||
case "snap" => saveSnapshot(state)
|
||||
case "print" => println(state)
|
||||
}
|
||||
|
||||
}
|
||||
//#persistent-actor-example
|
||||
|
||||
object PersistentActorExample extends App {
|
||||
|
||||
val system = ActorSystem("example")
|
||||
val persistentActor = system.actorOf(Props[ExamplePersistentActor], "persistentActor-4-scala")
|
||||
|
||||
persistentActor ! Cmd("foo")
|
||||
persistentActor ! Cmd("baz")
|
||||
persistentActor ! Cmd("bar")
|
||||
persistentActor ! "snap"
|
||||
persistentActor ! Cmd("buzz")
|
||||
persistentActor ! "print"
|
||||
|
||||
Thread.sleep(10000)
|
||||
system.terminate()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue