采取以下措施:
Action.async {
implicit request: Request[AnyContent] =>
logger.warn(s"CALL: $request")
Future {
blocking {
Thread.sleep(120000)
logger.warn("FINISHED")
Ok("{}")
}
}
}
我希望在t = 0时看到CALL
,在t = 120s时看到FINISHED
。但是会发生以下情况:
t=0s: CALL
t=75s: CALL
t=120s: FINISHED
t=195s: FINISHED
然后页面呈现“连接已重置”。
发生了什么事??
play.server.http.idleTimeout
默认为75s)时,它将自动重新发送请求。specified仅重试幂等请求,这就是我弄错的地方:我的请求使用GET,但是在服务器端触发的操作不是幂等的。因此,我应该改用POST。Source