3

我正在制作一个基于 scala akka 的系统,它将动态地将新参与者(代表用户)添加到现有层次结构中,因此我需要知道给定消息是否应该导致在层次结构中创建新参与者(如果它还没有存在)与否。我想我真正想要的是一些像actorSelection这样的方法,它会返回结果集中的演员数量,而不是结果集本身。

如果参与者已使用此名称存在,则以下代码将引发异常:

case u:UserAdded   => {
  context.actorOf(Props[HashActor],u.user.hash()) ! u
}
4

1 回答 1

1

感谢https://groups.google.com/forum/?fromgroups=#!topic/akka-user/jnv1CrdPKns我想这比我想的要容易得多:

     case u:UserAdded =>
         val target = context.actorFor(u.user.hash) match {
           case noref if noref.isTerminated => context.actorOf(Props[HashActor], u.user.hash)    
           case ref => ref
         }
         target forward u
于 2012-11-17T15:32:41.220 回答