2012-11-17 28 views
3

我正在製作一個基於Scala akka的系統,它將動態地將新的角色(代表用戶)添加到現有的層次結構中,因此我需要知道給定的消息是否應該導致創建新的(如果它不存在),或者不是。我想我真正想要的是一些像ActorSelection這樣的方法,它會返回resultset中的actor的數量,而不是結果集本身。如何查找actorSelection中的點擊數

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

回答

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 
+1

你爲什麼叫

下面的代碼,如果該演員已經存在具有此名稱拋出一個異常演員兩次? –

+0

哎呀,新手錯誤,你是對的沒有必要,因爲我已經有裁判 –