Я поддержание реестра актера следующим образом:Akka Актер Выбор
val system = ActorSystem("MySystem")
val actorRegistry = HashMap[String, ActorRef]()
def process(msg: Message, keys: List[String]): Unit = {
for (key <- keys) {
//Lookup the actor or create a new actor and register
val actor = actorRegistry getOrElseUpdate(key,
system actorOf(Props[MyActor], name = key))
actor ! msg
}
}
Это идиоматическое подход, или я должен реализует это с ActorSelection
?
Это не было ясно из моего примера кода, но на самом деле 'keys' обычно будет небольшим подмножеством' actorRegistry'. Похоже, что пользовательский маршрутизатор - вариант для меня. – dbyrne
'ActorSelection' может быть более идиоматичным, если вы можете использовать подстановочный знак или сегмент пути, чтобы выбрать подмножество актеров, которые вам нужны. ActorSelection ведет себя по-разному с точки зрения жизненного цикла актера. Наконец, ваш код выглядит хорошо, как есть. :) –