2012-02-20 7 views
5

В Akka 2.0 есть ли хороший способ закрыть всех участников под дорогой/пользователем? Например, допустим, что я делаю следующее:остановить всех актеров в системе, не выключая саму систему?

val system = ActorSystem.create("mySystem") 

system.actorOf(Props(new MyActor1), "actor1") 
system.actorOf(Props(new MyActor2), "actor2") 

Через некоторое время, я решил, что хочу, чтобы остановить все актеры в системе. Если я правильно понимаю вещи, actor1 и actor2 будут детьми пути/пользователя, но я не вижу метода, который дает мне итерабельность детей ActorRef. Есть ли другой способ?

+4

Вы не можете создать много актеров под корнем непосредственно, так как это создает очень неглубокое, но широкое дерево. Сначала создайте один уровень, а затем PoisonPill, который один? –

+0

Первоначально я думал, что это не относится к моей проблеме, но после большего рассмотрения, я думаю, что еще один слой актеров может быть в порядке. Я в основном управляю соединениями для службы, и соединения висят непосредственно от актерской системы. Я верю, что добавлю поддержку контейнера подключения. Благодаря! – jxstanford

+0

Вас приветствуют :-) –

ответ

12

Используйте выбор актера отправить PoisonPill для всех участников верхнего уровня:

system.actorSelection("/user/*") ! PoisonPill