Создание собственного Akka Supervisor, который закрывает всех связанных актеров - PullRequest
1 голос
/ 17 декабря 2011

Этот предыдущий вопрос предполагает, что вызов 'stop' для субъекта-супервизора отключит всех связанных субъектов. Однако, если кто-то создает «пользовательский» актер (не через фабрику), кажется, что это автоматическое отключение не происходит. Например, посмотрите этот код из ответа на другой вопрос :

class Module1 extends Actor {
   self.faultHandler = OneForOneStrategy(List(classOf[Throwable]), 5, 5000)

   def receive = {
       case Register(actor) =>
           self.link(actor)
   }
}

Если на вышеупомянутом актере Module1 был вызван «stop», связанные с ним актеры не отключатся. Можно ли сделать так, чтобы пользовательский актер автоматически закрывал связанных актеров? Или это просто то, что вы должны написать сами, если хотите создать собственного актера?

Спасибо!

1 Ответ

2 голосов
/ 17 декабря 2011

Вы можете вызвать «self.linkedActors.values.iterator», а затем отправить PoisonPill или остановить () их.

...