我们的服务器正在使用 clojurering.adapter.jetty,并且我们的一个用户导致了 java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 200000/200000 ms
上传约 20MB 的大文件时出错。他的连接速度非常慢,但我没有遇到同样的错误来限制我的连接。超时异常足够高(这是空闲超时,不是上传超时)
我们上传过程的快速版本是使用多部分表单,然后使用 java.io.copy 将临时文件复制到服务器文件夹。
我正在尝试至少在我的机器上重新创建错误以使错误处理正常工作。如果我发现任何更改我的应用程序代码的解决方案,我还需要通过尝试引发错误来测试它们。到目前为止,我尝试将速度限制在允许的范围内接近 0,并在 devtools (chrome) 中设置超高延迟,并将 jetty 超时设置为 100 毫秒,但它仍然可以正常上传。
用户是否还可以采取任何措施来帮助减少超时的可能性。
最佳答案
当连接、读取或写入配置的 IdleTimeout 上没有 Activity 时,IdleTimeout 会触发。
就您的用户而言,该连接在 200,000 毫秒(约 3.3 分钟)内没有任何 Activity ,因此连接被关闭。
3.3 分钟对于移动网络来说实际上是一个较低的值。
根据经验,您可能希望至少将其增加到 300,000 毫秒(或 5 分钟)。
关于java - 是什么原因导致 jetty 空闲超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57013975/