生命周期管理
生命周期钩子也作为 DSL 元素公开,下面显示的方法的后续调用将替换相应钩子的内容:
val a = actor(new Act {
whenStarting { testActor ! "started" }
whenStopping { testActor ! "stopped" }
})
如果 actor 的逻辑生命周期与重启周期匹配(即在重启之前执行停止和之后启动时),则上述内容就足够了。如果不需要,请使用以下两个钩子:
val a = actor(new Act {
become {
case "die" ⇒ throw new Exception
}
whenFailing { case m @ (cause, msg) ⇒ testActor ! m }
whenRestarted { cause ⇒ testActor ! cause }
})