0

ドキュメントから、アクターにメッセージを送信するとアクターが再起動されることがわかりKillましたが、実際には停止するだけです。

(ドキュメントが古くなっていますか?)

4

2 に答える 2

1

preStart新しいトップレベル アクターを作成し、そのメソッドで古いトップレベル アクターを作成します。これがスーパーバイザーになり、このコードを新しいトップレベル アクターに配置することで、スーパーバイザー戦略を設定できます。

override val supervisorStrategy = OneForOneStrategy() {
  case _: Exception => Restart
  case _: Throwable => Escalate
}

メッセージはKill、古いトップレベル アクターに送信する必要があります。

于 2013-01-21T16:54:07.217 に答える
1

Kill は、「すべてのアクタが理解できるメッセージであり、処理されると、アクタは ActorKilledException をスローし、監視がトリガーされます。」. そのため、殺されたアクターの親アクターのスーパーバイザー ストラテジーが Stop の場合、再起動されません。akka 2.1.0 では、最上位のユーザー作成アクターを監視するガーディアン (例: "/user/") のスーパーバイザー戦略を構成できます。

于 2013-01-21T16:18:33.957 に答える