Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 在Akka FSM中覆盖'receive'安全吗?_Scala_Akka_Akka Fsm - Fatal编程技术网

Scala 在Akka FSM中覆盖'receive'安全吗?

Scala 在Akka FSM中覆盖'receive'安全吗?,scala,akka,akka-fsm,Scala,Akka,Akka Fsm,我和Akka创建了一个FSM。然而,我的FSM并不仅仅传递与它的FSM状态相关的消息。它的子代也可以将ActorRef传递给它,然后我的FSM应该进一步传递给它的父代。由于Akka中的FSM(自然)也是参与者,因此我想覆盖receive,以捕获那些ActorRefs。然而,这样做破坏了参与者的FSM功能。处理这种情况的正确方法是什么?当未处理时,可以在中处理与任何FSM状态无关的消息: whenUnhandled { case Event(someActorRef: ActorRef, _)

我和Akka创建了一个FSM。然而,我的FSM并不仅仅传递与它的FSM状态相关的消息。它的子代也可以将ActorRef传递给它,然后我的FSM应该进一步传递给它的父代。由于Akka中的FSM(自然)也是参与者,因此我想覆盖
receive
,以捕获那些
ActorRefs
。然而,这样做破坏了参与者的FSM功能。处理这种情况的正确方法是什么?

当未处理时,可以在
中处理与任何FSM状态无关的消息:

whenUnhandled {
  case Event(someActorRef: ActorRef, _) =>
    context.parent ! someActorRef
    stay()
}

尽管如此,覆盖
receive
也应该有效。

只需提及Akka FSM有许多缺点: