2 人のアクターをリンクしたスーパーバイザーがいるとします。アプリがシャットダウンするとき、それらのアクターを適切にシャットダウンしたいと考えています。Supervisor.shutdown() を呼び出すと、すべてのアクターが停止しますか?それとも自分のアクターを手動で停止する必要がありますか?
グラシアス
2 人のアクターをリンクしたスーパーバイザーがいるとします。アプリがシャットダウンするとき、それらのアクターを適切にシャットダウンしたいと考えています。Supervisor.shutdown() を呼び出すと、すべてのアクターが停止しますか?それとも自分のアクターを手動で停止する必要がありますか?
グラシアス
スーパーバイザーを停止する( を呼び出すSupervisor.stop()
) と、リンクされた (監視対象の) アクターがすべて停止します。
final class SupervisorActor{
...
override def postStop(): Unit = shutdownLinkedActors
ただし、システム内のすべてのアクターを正常にシャットダウンする場合は、別の適切な方法があります。それには、Actor Registry (システム全体のすべてのアクターに関する情報を保持します) を使用します。
Actor.registry.shutdownAll