Search code examples
javascalaakkaactorakka-supervision

In AKKA does calling shutdown on a supervisor stop all the actors it's supervising?


Let's say I have a supervisor that has linked 2 actors. When my app shutsdown I want to shutdown those actors gracefully. Does calling supervisor.shutdown() stop all the actors or do I still need to stop my actors manually?

gracias


Solution

  • Stopping a supervisor (calling Supervisor.stop()) stops all linked (supervised) actors:

    final class SupervisorActor{
    ...
       override def postStop(): Unit = shutdownLinkedActors
    

    However, when you want to shutdown all actors in the system gracefully, there's another proper way to do that, using Actor Registry (that holds information about all the actors systemwide):

    Actor.registry.shutdownAll