1

私は 3 つのアクターの階層を持っています: SM -> R -> W SM - サービス マネージャー R - ルーター W - ワーカー

SM は、リモート ノードに展開されるアクター W を作成した R アクターを作成します。

外部サービスから情報を収集するため、Actor W の作成には時間がかかるため、数秒の遅延は正常です。したがって、preStart()W から SM に、init が完了し、完全に機能するというメッセージを送信したいと考えています。

この方法で W から SM アクターに到達しようとしました。

val myCreatorServiceManagerActorPath = self.path.parent.parent
context.actorSelection(myCreatorServiceManagerActorPath) ! RegisteredServiceWorker(serviceName)

これらのメッセージはすべて、deadLetter の受信トレイに送られます。間違っている場合は訂正してください。ただし、ローカリゼーションは透過的であるべきではありませんか? SM男優への正しい連絡方法は?

ここで役立つ場合は、dead-letter-log です

monitor [INFO] [03/28/2014 11:34:49.253] [application-akka.actor.default-dispatcher-18] [akka://application/remote/akka.tcp/application@127.0.0.1:2558/user/ServiceManager] Message [pl.mlife.mcloud.runner.common.ServiceRuntimeActor$RegisteredServiceWorker] from Actor[akka://application/remote/akka.tcp/application@127.0.0.1:2558/user/ServiceManager/sample/c3#-1356554194] to Actor[akka://application/remote/akka.tcp/application@127.0.0.1:2558/user/ServiceManager] was not delivered. [3] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
4

1 に答える 1

1

コンストラクターにRパスSMを持っています。その後、を使用せずWに に直接送信します。WactorSelection

于 2014-04-10T21:55:05.510 に答える