私は2つの俳優、親と子供がいます。親はcontent.watch(子)を使用して子を監視します。子がcontext.stop(self)を呼び出すと、親はTerminatedメッセージを受け取ります。しかし、子が例外をスローすると、akkaはそれを再起動しますが、親にTerminatedメッセージを送信しません。Akka死亡監視 - 終了と再開のために見てください
親アクターはどのように子を監視し、終了/再起動を監視できますか?私はそれを理解
class Parent ... {
override val supervisorStrategy = OneForOneStrategy() {
case _: Exception => Stop
}
}
ように、これは、この俳優のすべての子に適用されます:私が思いついた
1つのオプションは、すべての例外で停止するように、親でスーパーバイザ戦略を上書きすることです。理想的には私は、個々の子ども(俳優の種類)ごとに異なるスーパーバイザ戦略を持っているしたいと思いますので、私は動作しますが、それはハックのビットのように思える
class Child ... {
override def postRestart(reason: Throwable): Unit = context.stop(self)
}
を使用することを考えました。私が気付いていない他の選択肢はありますか?
多くの感謝!
おかげで、私はこのアイデアを見てみましょう –