/ / Erhalten Sie "tote Buchstaben" mit Spray-Client - Scala, Akka, Spray, Akka-http, Spray-Client

"Tote Briefe angetroffen" mit Spray-Client - Scala, Akka, Spray, Akka-http, Spray-Client

Ich schreibe einfachen Spray-Client-Code:

 // 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))

Jedes Mal, wenn ich diesen Code ausführen, bekomme ich

[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".

Was muss ich tun, um das zu beheben?

Antworten:

0 für die Antwort № 1

Es ist nicht unbedingt ein Problem. Hier ist ein Ausschnitt aus Dokumentation.

Standardmäßig werden an unzustellbare Nachrichten gesendete Nachrichten gesendetauf Info-Ebene protokolliert. Das Vorhandensein toter Briefe weist nicht notwendigerweise auf ein Problem hin. Dies kann jedoch der Fall sein, weshalb sie standardmäßig protokolliert werden. Nach einigen Meldungen ist diese Protokollierung deaktiviert, um ein Überfluten der Protokolle zu vermeiden. Sie können diese Protokollierung vollständig deaktivieren oder anpassen, wie viele tote Buchstaben protokolliert werden. Während des Herunterfahrens des Systems werden wahrscheinlich tote Buchstaben angezeigt, da ausstehende Nachrichten in den Akteurpostfächern an tote Briefe gesendet werden. Sie können die Protokollierung toter Briefe auch während des Herunterfahrens deaktivieren.

Ich ignoriere sie beim Start meines Servers.