Hello world with Akka
Let's install Akka. We add it as a dependency to our build.sbt
file:
scalaVersion := "2.11.7" libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.4.0"
We can now import Akka as follows:
import akka.actor._
For our first foray into the world of actors, we will build an actor that echoes every message it receives. The code examples for this section are in a directory called chap09/hello_akka
in the sample code provided with this book (https://github.com/pbugnion/s4ds):
// EchoActor.scala import akka.actor._ class EchoActor extends Actor with ActorLogging { def receive = { case msg:String => Thread.sleep(500) log.info(s"Received '$msg'") } }
Let's pick this example apart, starting with the constructor. Our actor class must extend Actor
. We also add ActorLogging
, a utility trait that adds the log
attribute.
The Echo
actor exposes a single method, receive
. This is the actor's only way of communicating with the external world. To be useful...