これが私が見つけたものであり、私の人生では理由にナビゲートできません。基本的に何もしないか、受信したメッセージのタイプに基づいてメッセージを印刷する「プリンター」アクターを作成しています。
class Printer extends Actor {
def receive = {
case m: SomeMessage => println( m.text )
case _ =>
}
}
私はこれらのアクターのいくつかを作成しています:
val actor4 = system.actorOf(Props[Printer], "t-4")
val actor5 = system.actorOf(Props[Printer], "t-5")
val actor6 = system.actorOf(Props[Printer], "t-6")
そしてそれらをベクトルに投げます:
val routees2 = Vector[ActorRef](actor4, actor5, actor6)
上記のことを行っているのは、それらをルーターに投入できるようにするためです (そして、それらはルーターの制御下に置かれます)。この時点まで仕様を実行すると、問題はありません。それらをルーターに配置して仕様を実行するとすぐに、問題が発生します。ルーターは次のとおりです。
val router = system.actorOf(Props[Printer].withRouter(
BroadcastRouter(routees = routees2)), "router-to-transformers")
仕様を実行すると、あらゆる種類の死んだ文字が表示されます...
[INFO] [09/23/2013 17:10:21.468] [spider-akka.actor.default-dispatcher-6] [akka://spider/user/router-to-transformers] Message [akka.dispatch.sysmsg.DeathWatchNotification] from Actor[akka://spider/user/router-to-transformers#-1845250548] to Actor[akka://spider/user/rout
er-to-transformers#-1845250548] was not delivered. [1] 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'.
[INFO] [09/23/2013 17:10:21.468] [spider-akka.actor.default-dispatcher-6] [akka://spider/user/router-to-transformers] Message [akka.dispatch.sysmsg.DeathWatchNotification] from Actor[akka://spider/user/router-to-transformers#-1845250548] to Actor[akka://spider/user/rout
er-to-transformers#-1845250548] was not delivered. [2] 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'.
[INFO] [09/23/2013 17:10:21.468] [spider-akka.actor.default-dispatcher-6] [akka://spider/user/router-to-transformers] Message [akka.dispatch.sysmsg.DeathWatchNotification] from Actor[akka://spider/user/router-to-transformers#-1845250548] to Actor[akka://spider/user/rout
er-to-transformers#-1845250548] 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'.
私の人生では、ここで何が起こっているのか理解できません。テストのスニペットへのリンクを追加しました。スニペットの番号付けは奇妙です。スニペットが乱雑にならないように、コメントアウトされたさまざまな試みをたくさんカットしたからです。アクターを追加して実際にメッセージを渡し始めたとき、物事が配信されていないように感じたので、私はこのデッドレターの問題に焦点を当てています... http://snipt.org/AhVf0
これらのアクターはローカルであることを強調する価値があります。私はactorForが減価償却されていることについて何か読んだことがあります. ただし、ここには非常に多くの可動部分があり、安定した包括的なドキュメントはあまりありません。どんな助けでも大歓迎です。