В АККА вызов остановки на супервизоре останавливает всех актеров, которых он контролирует? - PullRequest
8 голосов
/ 18 февраля 2011

Допустим, у меня есть руководитель, который связал 2 актеров.Когда мое приложение закрывается, я хочу изящно отключить этих актеров.Останавливает ли вызов supervisor.shutdown () всех актеров или мне все еще нужно останавливать своих актеров вручную?

1 Ответ

8 голосов
/ 18 февраля 2011

Остановка супервизора (вызов Supervisor.stop()) останавливает всех связанных (контролируемых) актеров:

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

Однако, когда вы хотите корректно отключить всех актеров в системе,еще один правильный способ сделать это , используя Реестр акторов (который содержит информацию обо всех актерах в системе):

Actor.registry.shutdownAll
...