/ /スプレークライアントを使用して "デッドレターが発生" - scala、akka、スプレー、akka-http、スプレークライアント

スプラッシュクライアントを使用して「死んだ手紙が遭遇する」 - scala、akka、spray、akka-http、spray-client

私は簡単なスプレークライアントコードを書いています:

 // ActorSystem("main-actor-system") initialized earlier in code
implicit val system = actorSystem
implicit val execctx: scala.concurrent.ExecutionContext = system.dispatcher
implicit val timeout = Timeout(10.seconds)

val pipeline: Future[pipelining.WithTransformerConcatenation[HttpRequest, Future[String]]] =
for ( Http.HostConnectorInfo(connector, _) <-
IO(Http) ? Http.HostConnectorSetup("myservicehost", port = 80)
) yield sendReceive(connector) ~> unmarshal[String]

Await.ready(pipeline, 10 seconds)

// this is quite brute forse, what is better way?
val pl = pipeline.value.get.get

val response: Future[String] = pl { Get("/status")}
private val result: String = Await.result(response, 10 seconds)
response.foreach(r => println("result" + result))

このコードを実行するたびに

[INFO] [02/17/2016 15:31:15.596] [main-actor-system-akka.actor.default-dispatcher-3] [akka://main-actor-system/system/IO-TCP/selectors/$a/0] Message [akka.io.Tcp$Close$] from Actor[akka://main-actor-system/user/IO-HTTP/group-0/0#-1771046370] to Actor[akka://main-actor-system/system/IO-TCP/selectors/$a/0#1352725834] 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".

それを修正するために私は何をすべきですか?

回答:

回答№1は0

それは必ずしも問題ではありません。 ドキュメンテーション.

デフォルトでは、デッドレターに送信されるメッセージは情報レベルで記録されます。デッドレターの存在は、必ずしも問題を示すとは限りませんが、デフォルトで記録されます。いくつかのメッセージの後、このログはオフにされ、ログのフラッディングは回避されます。このロギングを完全に無効にするか、ログに記録されるデッドレターの数を調整できます。システムシャットダウン時には、アクターメールボックスの保留中のメッセージがデッドレターに送られるため、デッドレターが表示される可能性があります。また、シャットダウン中に死んだ文字のログを無効にすることもできます。

私は私のサーバーの起動時にそれらを無視します。