java - 是什么原因导致 jetty 空闲超时

标签 java clojure jetty

我们的服务器正在使用 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/

相关文章:

java - 将 http 更改为 https

mysql - clojure中从mysql数据库获取数据

clojure - 如何在 Clojure 中发出警告

java - 为什么 gradle jettyRunWar 任务不适用于 java8?

maven-2 - 使用 Maven Jetty 插件部署 war 时获取 FileNotFoundException

maven - jax-ws 和 jetty (使用 maven)

java - 是否有任何用于折线简化的开源 Java 库?

java - 为什么java同时支持数组和集合?

java - Swing 计时器不停止

clojure - 是否有与 Python 的 lxml 等效的 Clojure 模块?