在参与者之间共享可变对象



我有以下情况

Actor A收到请求并将工作委托给两个子演员ACtor bActor c。这两个参与者都更改对象的状态,但父参与者不依赖于这些参与者中的任何一个的结果

这是反模式吗?如何在不传递此对象的情况下分配负载?

这是 scala 中的示例,但逻辑是相同的

class ParentActorA extends Actor {
  val childActorB: ActorRef = _
  val childActorC: ActorRef = _
  def receive: Receive = {
     case r: Request =>
       childActorB ! Delegate(r)
       childActorC ! Delegate(r)
     case n: ChildNotification => //change local state based on this notification from child actor       
  }
}
class ChildActorA extends Actor {
   def receive: Receive = {
      case Delegate(r) => //do some work and notify parent with ChildNotification object
   }
}

最新更新