Netty 当响应时间超过requestReadTimeoutSeconds时,KTor正在终止GET请求

Netty 当响应时间超过requestReadTimeoutSeconds时,KTor正在终止GET请求,netty,ktor,Netty,Ktor,我们有一些长请求(获取的数据太多,但说来话长),它们将由KTor(Netty引擎)根据requestReadTimeoutSeconds的值终止。这些是GET请求,所以没有要发送的尸体 它被设置为25,请求在25秒后终止,我将其更改为15秒,然后在15秒后开始终止 即使响应很大,我们也要确保“立即”返回结果。我还可以从客户端看到,我们开始接收内容,但连接被终止 我错误地认为requestReadTimeoutSeconds不应该影响GET请求。它不应该在收到其他请求后超时?或者,可能无法确定客户

我们有一些长请求(获取的数据太多,但说来话长),它们将由KTor(Netty引擎)根据
requestReadTimeoutSeconds
的值终止。这些是GET请求,所以没有要发送的尸体

它被设置为25,请求在25秒后终止,我将其更改为15秒,然后在15秒后开始终止

即使响应很大,我们也要确保“立即”返回结果。我还可以从客户端看到,我们开始接收内容,但连接被终止

我错误地认为
requestReadTimeoutSeconds
不应该影响GET请求。它不应该在收到其他请求后超时?或者,可能无法确定客户何时“完成”接收

谢谢,
Anders

请求ReadTimeOutSeconds直接从Netty映射到
ReadTimeoutHandler
():因此这是配置
Netty
内部的方法

官方netty文件说:

Raises a ReadTimeoutException when no data was read within a certain period of time.
超时指的是网络读取,因此这是预期的行为

您可以在此处编写自定义功能: 例如:

类超时{
类配置(var postRequestTimeout:Long=5000L)
伴随对象:ApplicationFeature

并将其安装在以下位置:

安装(超时){
postRequestTimeout=5000//以毫秒为单位
}
此功能允许您直接设置post请求的超时


如果您在功能请求中描述您在这里的用例,我们会很高兴:。

Cool。非常感谢您的详细解释。但是,这会对整个事务施加超时,而不仅仅是客户端发送内容。您知道如何做吗?:)