在Akka FSM中覆盖`receive`是否安全?

时间:2016-10-15 19:43:24

标签: scala akka akka-fsm

我用Akka创建了一个FSM。但是,我的FSM不会仅传递与其FSM状态相关的消息。它的孩子也可以将ActorRef传递给它,然后我的FSM应该进一步传递给它的父母。由于Akka中的FSM(自然)也是演员,我想覆盖receive来捕捉那些ActorRefs。但是,这样做打破了演员的FSM功能。处理这种情况的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

可以在whenUnhandled

中处理与任何FSM状态无关的消息
whenUnhandled {
  case Event(someActorRef: ActorRef, _) =>
    context.parent ! someActorRef
    stay()
}

虽然,覆盖receive也应该,afaik,也是。