Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Tomcat 6限制请求执行时间_Java_Spring_Tomcat6 - Fatal编程技术网

Java 如何使用Tomcat 6限制请求执行时间

Java 如何使用Tomcat 6限制请求执行时间,java,spring,tomcat6,Java,Spring,Tomcat6,我正在用Spring和Tomcat6开发一个web应用程序。有时,由于某些原因,请求需要很长时间才能完成,这会降低服务器的性能。是否可以在Tomcat6或Spring中限制请求执行时间?欢迎就这个问题采取其他办法。谢谢。使用HttpConnector配置连接超时 修改您的server.xml <Connector ... connectionTimeout="xxxx" 是否可以在Tomcat6或Spring中限制请求执行时间 是的,这是可能的,但您需要自己实现这一点 其基本思想是,请

我正在用Spring和Tomcat6开发一个web应用程序。有时,由于某些原因,请求需要很长时间才能完成,这会降低服务器的性能。是否可以在Tomcat6或Spring中限制请求执行时间?欢迎就这个问题采取其他办法。谢谢。

使用HttpConnector配置
连接超时

修改您的server.xml

<Connector ... connectionTimeout="xxxx"

是否可以在Tomcat6或Spring中限制请求执行时间

是的,这是可能的,但您需要自己实现这一点

其基本思想是,请求方法需要使用a来为自己安排一个中断,在未来的N秒内。然后,它需要在请求处理过程中定期检查,以查看它是否被中断。最后,如果计时器在超时之前完成,则需要取消计时器


上面假设servlet应该限制处理请求所花费的时间。如果您想在客户端实现超时,则很容易在请求完成时设置超时;e、 g.见


(但客户端超时的问题是,服务器不会知道客户端已放弃等待,并且会继续处理该请求。这很容易导致大问题。想象一下,一个请求的完成时间比超时时间长得多,再加上一个客户端重复重试它已完成的请求超时…

ThePen的上述声明不正确。在客户端,当它放弃或浏览器关闭时,浏览器当然不会使其套接字保持活动状态。它会关闭套接字(恢复内存和端口,对吗?)。关机过程会将设定的信号发送到服务器端套接字-我相信是RST。

处理数据或从数据库获取数据的请求需要很长时间吗?基于此,我可以建议解决方案。@Vivek:long请求可能重复,主要用于处理数据。我们可以将它们放入队列中,然后在顺序,但很难确定哪些请求符合条件。为什么长请求会“降低服务器的性能”。即使您使用下面TechExchange的答案,如果是队列中的作业降低了服务器的速度,并且出现了一个长时间运行的请求并将其添加到队列中,则仅超时连接并不能解决性能问题;作业仍将在队列中,并且可能会被处理。@Disco3有一个队列,我们可以对其进行响应立即se并稍后处理作业,这样就可以安排它们,使长作业不会同时被处理。据我所知,这是根据文档,connectionTimeout是“此连接器在接受连接后等待请求URI行显示的毫秒数”.就我而言,请求已全部收到。