0
私は2人の子アクターをコンストラクターに生成し、そのうちの1人からのメッセージのみを受信するAkka FSMを構築しました。子アクターからのメッセージのみを処理する方法は?
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.
これは動作しません。実際には、私のFSMにメッセージを送信するのは間違いなくlhsNode
ですが、sender
とlhsNode
は等しくありません。
sender() Actor[akka://default/user/$a#670517729]
lhsNode Actor[akka://default/user/$a/$a/$b/lhs#-354253348]
私は間違っていますか?
と
以下のような何かあなたの側のコメントは、それを解決:偶発的なメッセージ転送が問題でした。ありがとう! :) – lambdarookie