我有一个基本的客户端,用来测试我的服务器。对于配置,我使用的是application.json
"spray": {
"can": {
"client": {
"idle-timeout": "120 s",
"request-timeout": "180 s"
},
"host-connector": {
"max-retries": "1",
"max-connections": "64"
}
}
}然而,在sendrecieve方法中,我看到超时总是60秒,根据文档,如果我使用请求超时,它假设是隐式值。
def sendReceive(implicit refFactory: ActorRefFactory, executionContext: ExecutionContext,
futureTimeout: Timeout = 60.seconds): SendReceive =
sendReceive(IO(Http)(actorSystem))是否需要显式加载配置?
发布于 2015-10-07 11:48:44
这是spary各种超时值的一个令人困惑的方面,有关详细说明,请参阅:理解喷雾客户端超时设置
关于上述方法定义的几个要点,超时仅用于满足对传输参与者的ask所需的超时,它与此连接的请求超时无关。futureTimeout: Timeout = 60.seconds意味着,如果没有提供默认值,而不是无条件地使用它,则使用该默认值。
您可以通过将一个requestTimeout传递给主机或请求级API,从而以编程方式配置HostConnectorSetup,因为您已经在spray.can.client配置中实现了这一点,尽管您不需要做进一步的更改。
https://stackoverflow.com/questions/32978133
复制相似问题