Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import akka.actor.{ActorRef, ActorSystem, Props, Actor, Inbox}
- import scala.concurrent.duration._
- case object Greet
- case class WhoToGreet(who: String)
- case class Greeting(message: String)
- class Greeter extends Actor {
- var greeting = ""
- def receive = {
- case WhoToGreet(who) => greeting = s"hello, $who"
- case Greet => sender ! Greeting(greeting)
- }
- }
- class GreetPrinter extends Actor {
- def receive = {
- case Greeting(message) => println(message)
- }
- }
- object HelloWorld extends App {
- val system = ActorSystem("HelloWorld")
- val greeter = system.actorOf(Props[Greeter], "greeter")
- val inbox = Inbox.create(system)
- greeter.tell(WhoToGreet("vixlur"), ActorRef.noSender)
- inbox.send(greeter, Greet)
- val Greeting(message) = inbox.receive(5.seconds)
- println(s"Greeting: $message")
- val greetPrinter = system.actorOf(Props[GreetPrinter])
- system.scheduler.schedule(0.seconds, 1.second, greeter, Greet)(system.dispatcher, greetPrinter)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement