Skip to content

Instantly share code, notes, and snippets.

@JohnMurray
Last active December 22, 2015 02:08
Show Gist options
  • Save JohnMurray/6400829 to your computer and use it in GitHub Desktop.
Save JohnMurray/6400829 to your computer and use it in GitHub Desktop.
Code files for my blog post at http://johnmurray.io
Starting Akka...
Running Akka 2.2.0
Deploying file:/Users/jmurray/IdeaProjects/HelloAkka/akka/deploy/hello-akka_2.10-0.0.1.jar
Starting up HelloWorldKernel
Successfully started Akka
Hello, World
Hello, World
Hello, World
Hello, World
...
name := "Hello Akka"
version := "0.0.1"
scalaVersion := "2.10.2"
resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"
libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.2.0"
libraryDependencies += "com.typesafe.akka" %% "akka-kernel" % "2.2.0"
import akka.actor.Actor
object Greeter {
case object Greet
}
class Greeter extends Actor {
def receive = {
case Greeter.Greet => {
println("Hello, World")
}
}
}
mport akka.actor.{Actor, Props}
object HelloWorldActor {
case object Tick
}
class HelloWorldActor extends Actor {
val greeter = context.actorOf(Props[Greeter], "greeter")
def receive: Actor.Receive = {
case HelloWorldActor.Tick => greeter ! Greeter.Greet
}
}
import akka.actor.{ActorSystem, Props}
import akka.kernel.Bootable
import scala.concurrent.duration._
class HelloWorldKernel extends Bootable {
val system = ActorSystem("helloworldkernel")
import system.dispatcher
def startup() {
val helloWorldActor = system.actorOf(Props[HelloWorldActor])
system.scheduler.schedule(0 milliseconds,
500 milliseconds,
helloWorldActor,
HelloWorldActor.Tick)
}
def shutdown() {
system.shutdown()
}
}
all: build deploy
run: build deploy start
build:
sbt package:clean
sbt package
start:
./akka/bin/akka HelloWorldKernel
deploy:
mv target/scala-2.10/hello-akka_2.10-0.0.1.jar akka/deploy/
wget http://downloads.typesafe.com/akka/akka-2.2.1.tgz
tar xzf akka-2.2.1.tgz
mv akka-2.2.1 akka
rm akka-2.2.1.tgz
dos2unix akka/bin/akka
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment