Java 是什么导致码头闲置

Java 是什么导致码头闲置,java,clojure,jetty,Java,Clojure,Jetty,我们的服务器正在使用clojure ring.adapter.jetty,我们的一个用户正在导致java.io.IOException:java.util.concurrent.TimeoutException:Idle timeout expired:200000/200000 ms上传大(ish)文件~20MB时出错。他有一个非常慢的连接,但我没有得到同样的错误节流我的连接。超时异常足够高(这是空闲超时,不是上载超时) 我们上传过程的快速版本是使用多部分表单,然后使用java.io.copy

我们的服务器正在使用clojure ring.adapter.jetty,我们的一个用户正在导致
java.io.IOException:java.util.concurrent.TimeoutException:Idle timeout expired:200000/200000 ms
上传大(ish)文件~20MB时出错。他有一个非常慢的连接,但我没有得到同样的错误节流我的连接。超时异常足够高(这是空闲超时,不是上载超时)

我们上传过程的快速版本是使用多部分表单,然后使用java.io.copy将临时文件复制到服务器文件夹

我试图用我的机器至少重新创建错误,以使错误处理工作正常。如果我发现任何改变我的应用程序代码的解决方案,我也需要通过尝试引起错误来测试它们。到目前为止,我尝试将我的速度限制在尽可能接近0的水平,并在devtools(chrome)中设置了一个超高的延迟,并将jetty超时设置为100ms,但它仍然可以正常上传


用户还可以做些什么来帮助减少超时的机会。

当连接上没有活动时,IdleTimeout会触发,对配置的IdleTimeout进行读取或写入

对于您的用户,该连接在200000毫秒(约3.3分钟)内没有任何活动,连接已关闭

3.3分钟实际上是移动网络的一个低值


根据经验,您可能希望将其至少增加到300000毫秒(或5分钟)。

当连接上没有活动时,会触发IdleTimeout,为配置的IdleTimeout执行读取或写入操作

对于您的用户,该连接在200000毫秒(约3.3分钟)内没有任何活动,连接已关闭

3.3分钟实际上是移动网络的一个低值


根据经验,您可能希望将其至少增加到300000毫秒(或5分钟)。

根据当时的文档,您似乎仍然无法满足的条件是强制连接处于空闲状态。是否您的用户正在从一个不可靠的连接(如手机上的3G)上传,并最终导致连接空闲?正确,我无法重新创建该条件。是的,他可能有一个糟糕的连接,但到目前为止,我所有的复制测试都只是断开慢速连接,而不是空闲。从目前的文档来看,您仍然无法满足的条件是强制连接空闲。是否您的用户正在从一个不可靠的连接(如手机上的3G)上传,并最终导致连接空闲?正确,我无法重新创建该条件。是的,有可能他有一个不良的连接,但到目前为止,我所有的测试复制只是断开缓慢的连接,而不是闲置。如何增加它?如何增加它?