【发布时间】:2021-01-08 20:19:19
【问题描述】:
我正在发出一个生成 Future 的 Web 服务请求。像这样(简化复制):
import play.api.libs.ws.WSClient
import scala.concurrent.{ExecutionContext, Future}
import scala.concurrent.duration._
class Service(wsClient: WSClient)(implicit ec: ExecutionContext) {
def callWebService() = {
val req: WSRequest = wsClient.url(...).withRequestTimeout(180 seconds)...
val respFuture:Future[Response] = req.execute()
}
}
在 WSClient 放弃之前,被调用的 Web 服务有 180 秒的时间做出响应。
此服务类的客户端现在将其称为service.callWebService()。当第三方 Web 服务花费 > 120 秒时,而不是等待 180 秒,未来会在 120 秒时超时(application-akka.actor.default-dispatcher-3 线程中抛出的java.util.concurrent.TimeoutException: Read timeout to localhost/127.0.0.1:8081 after 120000 ms。
感谢任何有关如何将默认调度程序使用的 120 秒增加到 180 秒的指针。
注意:
- 该应用程序在其他地方使用 Akka 演员。但此控制流中不涉及任何参与者。
- This post 接近但无济于事。
【问题讨论】:
标签: scala playframework play-ws