gpt4 book ai didi

scala - 我可以为特定管道请求设置超时和重试次数吗?

转载 作者:行者123 更新时间:2023-12-02 01:20:35 26 4
gpt4 key购买 nike

当使用spray的管道发出如下HTTP请求时:

val urlpipeline = sendReceive ~> unmarshal[String]
urlpipeline { Get(url) }

有没有办法指定请求的超时以及该特定请求应重试的次数?

我发现的所有文档都只引用了在配置中执行的操作(即使如此,我似乎也无法让它工作)。

谢谢

最佳答案

使用配置文件

我在 Akka 系统中使用 Spray 1.2.0。在我的 actor 中,我导入现有的 Akka 系统,这样我就可以使用默认的 Akka 配置文件。

implicit val system = context.system
import context.dispatcher
val pipeline: HttpRequest => Future[HttpResponse] = sendReceive

现在您可以更改 application.conf 中的配置。

spray.can.host-connector {
max-connections = 10
max-retries = 3
max-redirects = 0
pipelining = off
idle-timeout = 30 s
client = ${spray.can.client}
}

在代码中

可以使用 HostConnectorSetup 更改代码中的设置,但您必须定义所有参数。 (基于spray usage example。)

val pipeline: Future[SendReceive] =
for (
Http.HostConnectorInfo(connector, _) <-
IO(Http) ? Http.HostConnectorSetup("www.spray.io", port = 80, settings = Some(new HostConnectorSettings(maxConnections = 3, maxRetries = 3, maxRedirects = 0, pipelining = false, idleTimeout = 5 seconds, connectionSettings = ClientConnectionSettings(...))))
) yield sendReceive(connector)

关于scala - 我可以为特定管道请求设置超时和重试次数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18619633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com