[英]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.