Created
August 17, 2013 00:26
-
-
Save lu911/6254611 to your computer and use it in GitHub Desktop.
Akka Actor Test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import akka.actor.{Props, ActorSystem, Actor} | |
/* | |
* Copyright © 2013 Yuk SeungChan, All rights reserved. | |
*/ | |
object Main { | |
def main(args: Array[String]): Unit = { | |
println("*" * 20 + " Actor Registry " + "*" * 20) | |
new LogGenerator().run(100) | |
println("*" * 20 + " END " + "*" * 20) | |
} | |
} | |
object LogActor { | |
case class INFO(var msg:String){ msg = "[INFO] " + msg } | |
case class DEBUG(var msg:String){ msg = "[DEBUG] " + msg } | |
case class ERROR(var msg:String){ msg = "[ERROR] " + msg } | |
} | |
class LogActor extends Actor { | |
override def preStart() { println("*" * 20 + " preStart " + "*" * 20) } | |
override def preRestart(reason: Throwable, message: Option[Any]) { | |
context.children foreach (context.stop(_)) | |
postStop() | |
} | |
override def postRestart(reason: Throwable) { preStart() } | |
override def postStop() {} | |
def receive = { | |
case LogActor.INFO(msg) => { | |
println(msg) | |
} | |
case LogActor.DEBUG(msg) => { | |
println(msg) | |
} | |
case LogActor.ERROR(msg) => { | |
println(msg) | |
} | |
} | |
} | |
class LogGenerator { | |
val system = ActorSystem("Logger") | |
val logActor = system.actorOf(Props[LogActor], name="LogActor") | |
def run(count: Int): Unit = { | |
for(i <- 1 to count) | |
{ | |
logActor ! LogActor.INFO("Test Log : " + i) | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment