Akkaのライフサイクル

1085 ワード

詳細
まずクラスを定義し、Actorを継承します.
class akka001 extends Actor{
  override def preStart() ={
    println("this is preStart()")
  }

  def receive = LoggingReceive{
    case "hello" => println("hello world")
  }

  override def postStop()={
    println("this is postStop()")
  }
}

次にプライマリクラスを定義し、このクラスのオブジェクトにメッセージを送信します.
/**
  * Created by hyj on 17-7-3.
  */
object AkkaMain {
  def main(args: Array[String]): Unit = {
    val actorSystem=ActorSystem("actorSystem")
    val lifecycleActor=actorSystem.actorOf(Props[cn.qzt360.akka.akka001],"testactor")
    lifecycleActor!"hello"
    actorSystem.shutdown()
  }
}
の出力結果は次のとおりです.
this is preStart()
hello world
this is postStop()

Akkaのライフサイクル:まずprestartメソッドを実行し、次にreceiveメソッドを実行してメッセージを処理し、最後にactorSystemを呼び出す.shutdown()の場合postStopメソッドの実行がトリガーされます