Akka HTTP允许从application.conf
中的全局设置设置请求超时,或者使用指令在每个路由的基础上进行修改。
如何获取当前请求和路由的请求超时?像
这样的东西withRequestTimeout(FiniteDuration(5, TimeUnit.SECONDS)) {
extractRequestTimeout { timeout =>
complete(s"request would have timed out in $timeout") // request would have timed out in 5 seconds
}
}
会很完美。
答案 0 :(得分:0)
现在可以使用extractRequestTimeout
指令在Akka HTTP中实现。 PR和docs。
val timeout1 = 500.millis
val timeout2 = 1000.millis
val route =
path("timeout") {
withRequestTimeout(timeout1) {
extractRequestTimeout { t1 ⇒
withRequestTimeout(timeout2) {
extractRequestTimeout { t2 ⇒
complete(
if (t1 == timeout1 && t2 == timeout2) StatusCodes.OK
else StatusCodes.InternalServerError
)
}
}
}
}
}