pekko/akka-samples/akka-sample-persistence/src/main/scala/sample/persistence/ProcessorChannelExample.scala
Martin Krasser f327e1e357 !per #3704 Persistence improvements
- Channel enhancements (#3773):
- Live read models (#3776):
- Batch-oriented journal plugin API (#3804):
- Batching of confirmations and deletions
- Message deletion enhancements (more efficient range deletions)
2014-01-17 13:36:55 +01:00

41 lines
1.1 KiB
Scala

/**
* Copyright (C) 2009-2013 Typesafe Inc. <http://www.typesafe.com>
*/
package sample.persistence
import akka.actor._
import akka.persistence._
object ProcessorChannelExample extends App {
class ExampleProcessor extends Processor {
val channel = context.actorOf(Channel.props, "channel")
val destination = context.actorOf(Props[ExampleDestination])
def receive = {
case p @ Persistent(payload, _) =>
println(s"processed ${payload}")
channel ! Deliver(p.withPayload(s"processed ${payload}"), destination.path)
case reply: String =>
println(s"reply = ${reply}")
}
}
class ExampleDestination extends Actor {
def receive = {
case p @ ConfirmablePersistent(payload, snr, _) =>
println(s"received ${payload}")
sender ! s"re: ${payload} (${snr})"
p.confirm()
}
}
val system = ActorSystem("example")
val processor = system.actorOf(Props(classOf[ExampleProcessor]), "processor-1")
processor ! Persistent("a")
processor ! Persistent("b")
Thread.sleep(1000)
system.shutdown()
}