簡體   English   中英

Spray / Scala-根據特定要求設置超時

[英]Spray/Scala - Setting timeout on specific request

我目前使用噴霧管道設置了REST調用。 如果在x秒內沒有收到響應,我希望它超時,但僅在該特定呼叫上。 發出Spray Client管道請求時,是否有一種很好的方法來指定特定於該特定呼叫的超時?

據我所知,從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)

然后您顯然會為每個請求使用適當的管道

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM