我正在将应用程序从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
答案 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
}
}
您可以选择客户部分。