Modelo de actores

Run Settings
LanguageScala
Language Version
Run Command
import akka.actor._ case class CreateChild (name: String) case class Name (name: String) class Child extends Actor { var name = "No name" override def postStop { println(s"D'oh! They killed me ($name): ${self.path}") } def receive = { case Name(name) => this.name = name case _ => println(s"Child $name got message") } } class Parent extends Actor { def receive = { case CreateChild(name) => // Parent creates a new Child here println(s"Parent about to create Child ($name) ...") val child = context.actorOf(Props[Child], name = s"$name") child ! Name(name) case _ => println(s"Parent got some other message.") } } object Main extends App { val actorSystem = ActorSystem("ParentChildTest") val parent = actorSystem.actorOf(Props[Parent], name = "Parent") // send messages to Parent to create to child actors parent ! CreateChild("Jonathan") parent ! CreateChild("Jordan") // lookup Jonathan, then kill it println("Sending Jonathan a PoisonPill ...") val jonathan = actorSystem.actorSelection("/user/Parent/Jonathan") jonathan ! PoisonPill println("jonathan was killed") actorSystem.shutdown }
Editor Settings
Theme
Key bindings
Full width
Lines