Tomcat应该中止卡住的上传线程

时间:2016-05-12 13:18:25

标签: tomcat tomcat7

我检查了Tomcat的文档,但没有找到任何配置选项:让我们简化tomcat HTTP-Thread可以拥有的状态数:Ready,Connecting,Service,Finishing

在没有流量的情况下,所有http线程都将具有status = ready。 如果客户端请求进入,状态将切换为“连接”,然后切换到“服务”。如果所有字节都可以传递给客户端,则最终会有一个简短的完成状态。之后,线程切换回Ready,准备好接收新请求。

如果上传(处于状态服务中)卡住了,我的意思是在10秒内没有发送单个字节,我可以告诉Tomcat只是中止这些线程吗?

我没有找到一个完全相同的选项。 任何提示?

1 个答案:

答案 0 :(得分:1)

有两种配置选项:

  • connectionTimeout:
  

此连接器在接受连接后将等待呈现请求URI行的毫秒数。使用值-1表示没有(即无限)超时。默认值为60000(即60秒),但请注意Tomcat附带的标准server.xml将其设置为20000(即20秒)。除非disableUploadTimeout设置为false,否则在读取请求正文(如果有)时也将使用此超时。

  • connectionUploadTimeout
  

指定数据上载正在进行时使用的超时(以毫秒为单位)。这仅在disableUploadTimeout设置为false时生效。

  • keepAliveTimeout
  

此连接器在关闭连接之前等待另一个HTTP请求的毫秒数。默认值是使用为connectionTimeout属性设置的值。使用值-1表示没有(即无限)超时。

来源:https://tomcat.apache.org/tomcat-7.0-doc/config/http.html

如果要在写入客户端时防止阻塞,则应使用异步servlet并在Hystrix命令中封装写入操作。