喷涂到Akka HTTP迁移:spray.can.client.request-timeout

时间:2016-12-03 06:52:15

标签: spray akka-http

我正在将应用程序从Spray迁移到Akka HTTP。在配置中,我有:

spray {
  can {
    client.request-timeout = infinite
  }
}

Akka HTTP的等效配置是什么?似乎request-timeout现在仅在server上提供,而不是client

请参阅https://github.com/akka/akka-http/blob/master/akka-http-core/src/main/resources/reference.conf

2 个答案:

答案 0 :(得分:1)

来自Akka-HTTP文档(http://doc.akka.io/docs/akka-http/current/scala/http/client-side/connection-level.html#timeouts

  

目前,Akka HTTP未实现客户端请求超时   检查自己这个功能可以被视为更多   通用流媒体基础设施功能。

     

应该注意的是,Akka Streams提供各种超时   功能因此任何使用流的API都可以从流中受益   诸如idleTimeout,backpressureTimeout,completionTimeout等阶段,   initialTimeout和油门。要了解有关这些的更多信息,请参阅他们   Akka Streams(和Scala Doc)中的文档。

本质上,用户可以选择将超时控制添加到客户端流。例如,在the docs中显示的示例中,您可以添加TableView阶段来实现此目的

completionTimeout

请注意,如果您在 val responseFuture: Future[HttpResponse] = Source.single(HttpRequest(uri = "/")) .via(connectionFlow) .completionTimeout(5.seconds) .runWith(Sink.head) 超时后(根据您的Spray配置),则可以通过不添加任何超时阶段免费提供。

答案 1 :(得分:0)

akka.http {
  server {
    idle-timeout = infinite
  }
  client {
    idle-timeout = infinite
  }

  host-connection-pool {
    idle-timeout = infinite
  }

}

您可以选择客户部分。