spray.io客户端配置

时间:2015-10-06 19:30:02

标签: scala spray

我有一个基本客户端,用于测试我的服务器。对于我正在使用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))

我是否需要明确加载配置?

1 个答案:

答案 0 :(得分:1)

这是spary的各种超时值的一个令人困惑的方面,详细解释请参阅:Understanding Spray Client Timeout Settings

关于上述方法定义的几点,超时仅用于满足对传输actor的请求所需的超时,它与此连接的请求超时无关。 futureTimeout: Timeout = 60.seconds表示如果未提供此默认值,则使用此默认值,而不是无条件使用。

您可以通过将HostConnectorSetup传递给主机或请求级别API来以编程方式配置requestTimeout,因为您已经在spray.can.client配置中使用了这个,但您不需要制作进一步的变化。