我构建了一个 Akka FSM,它在其构造函数中生成了两个子 actor,并且只接收来自其中一个的消息。
val lhsRef: ActorRef = context.actorOf(Props(new PrimitiveNode(tpe)), "lhs")
val rhsRef: ActorRef = context.actorOf(Props(new PrimitiveNode(tpe)), "rhs")
在处理传入事件时,我想过滤那些来自lhsNode
. 我试图通过以下方式实现这一目标:
when(WaitFor1) {
case Event(event: SomeEventType, _) =>
// Control flow reaches this point but...
if (sender == lhsRef) {
// ...it never enters the if clause.
这不起作用。事实上,sender
并lhsNode
不平等,即使它绝对lhsNode
是向我的 FSM 发送消息。
sender() Actor[akka://default/user/$a#670517729]
lhsNode Actor[akka://default/user/$a/$a/$b/lhs#-354253348]
我究竟做错了什么?