我目前使用喷雾管道设置了REST调用。 如果在x秒内没有收到响应,我希望它超时,但仅在该特定呼叫上。 发出Spray Client管道请求时,是否有一种很好的方法来指定特定于该特定呼叫的超时?

#1楼 票数:1

据我所知,从spray-client 1.3.1开始,在创建管道之后无法自定义管道。 但是,您可以为不同类型的请求创建自定义管道。

值得一提的是,以下定义的超时是Ask()调用的超时,而不是网络操作的超时,但是我想这就是您所需要的描述。

我发现以下文章对于更好地了解库在后台的工作方式非常有用: http : //kamon.io/teamblog/2014/11/02/understanding-spray-client-timeout-settings/

免责声明 :我实际上没有尝试过,但是我想它应该可以工作:

val timeout1 = Timeout(5 minutes)
val timeout2 = Timeout(1 minutes)

val pipeline1: HttpRequest => Future[HttpResponse] = sendReceive(implicitly[ActorRefFactory],
        implicitly[ExecutionContext], timeout1)

val pipeline2: HttpRequest => Future[HttpResponse] = sendReceive(implicitly[ActorRefFactory],
        implicitly[ExecutionContext], timeout2)

然后您显然会为每个请求使用适当的管道

  ask by amherrington translate from so

未解决问题?本站智能推荐:

2回复

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

使用spray的流水线操作来发出这样的HTTP请求时: 有没有办法指定请求的超时和它应该重试该特定请求的次数? 我发现的所有文档只引用了一个配置(即便如此,我似乎无法让它工作)。 谢谢
1回复

喷雾,scala:更改超时

我想更改喷涂应用程序的超时时间,但是最简单的方法是什么? 我在github上看到了一些示例,但它们相当复杂。 谢谢。 我尝试了这个: 但超时时间似乎保持在5秒左右。
1回复

服务器请求超时与Spray

我正在使用Spark开发一个简单的Spray REST应用程序,我有以下代码(从spray-template生成)。 我对其进行了修改,以包括json支持和一些推荐程序,这些程序返回业务列表。 由于某种原因,即使我将timeout参数指定为infinite,请求也会超时。 有人可以告诉我我
1回复

产生scala和spray错误

我尝试使用scala和spray-routing创建简单的CRUD应用程序。 我有以下路线: 我是根据官方文档http://spray.io/documentation/1.2.2/spray-routing/marshalling-directives/produce/编写的
1回复

如何在Sbt的Build.scala中设置spray-can的堆大小?

我有一个正在运行的sbt项目,可以使用重新启动来启动服务器。 使用xsbt-web-plugin完成设置。 现在,我注意到服务器进程以128M的堆运行,这有点短。 我知道如何为sbt进程配置堆大小,但显然Spray正在运行不同的jvm。 在这种设置中,如何为喷雾罐配置更大的堆?
1回复

Scala:多个路径带有Spray的前缀

我正在尝试使用Spray创建一个侦听2个前缀的API。 这两个前缀依次侦听可选的整数。 这是我要实现的设置: 这样,API可以监听类似 但是,使用所述片段,仅侦听两个前缀之一。 我尝试了不同的语法样式,例如在twe的pathPrefix块之间放置〜 ,并合并pa
2回复

连接重置消耗REST服务(scala / spray)

我发送并发请求休息服务时遇到问题; 客户端(Apache JMeter)中的消息对于某些请求是“连接重置”,具体取决于请求数量,例如,我发送100个请求并且服务器的响应是100%成功,但是如果我发送500个请求,则30 %的回复是错误的。 我修改了“application.conf”,
1回复

使用Spray在Scala中将UUID写入JSON

我在Scala和Spray应用程序在以JSON返回UUID遇到一些问题。 当实体User(id: UUID, name: String)被解析为JSON我收到了: 我想以String format接收uuid 。 就像是: 我定义了UUID格式,并在从JSON解析为User时