Akka HTTP请求超时

问题描述

使用带有简单get的Akka http从Slick返回未来,DAO只会在未来实际完成时给出超时响应503 service unavailable,而在响应结束后应该仅给出503响应超时到期。

以下是application.conf

中的配置
include "akka-http-version"
akka.http {
   server {
     idle-timeout = 300 s
     request-timeout = 2 s
   }
}

如果在上述配置下,有一个请求来了,而存储库又收到了,假设10 seconds,则仅在10秒后 后的响应是503,而在此之后我们应该得到503 2 seconds本身。

解决方法

Akka行为非常正常。超时必须在 Future线程(异步操作的不同线程)上发生。

为阻止Akka使用503进行答复,不得阻塞始于路由开头的主线程,超时必须发生在异步线程上。