Как инструменту akka-http полное время отклика? - PullRequest
3 голосов
/ 23 октября 2019
path("foo" ~ Slash.?) {
      complete(HttpEntity(ContentTypes.`application/octet-stream`, ByteString(Files.readAllBytes(Paths.get("foo")))))
}

Скажите foo - это файл размером 1 ГБ. Я добавил watchTermination вокруг Flow ответа, но я получил уведомление перед отправкой ответа , но на самом деле я хотел бы получать уведомление после отправки полного ответа наclient .

Дальнейшие исследования показывают, что watchTermination построен на GraphStage, который поддерживает только onUpstreamFinish, и он onDownstreamFinish вызывается только при наличии исключения. См. GraphStages.scala # L128

Вот репозиторий моего полного кода: https://github.com/ssgao/akka-http-quickstart-scala/tree/master/src/main/scala/com/example

...