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

Hai*_*yen 7 java spring tomcat6

我正在使用Spring和Tomcat 6开发Web应用程序.有时,由于某种原因,请求需要很长时间才能完成,并且会降低服务器的性能.是否可以限制Tomcat 6或Spring中的请求执行时间?关于这个问题的其他方法是受欢迎的.谢谢.

Ste*_*n C 0

Tomcat 6或Spring中是否可以限制请求执行时间?

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

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


上面假设 servlet 应该限制它处理请求所花费的时间。相反,如果您想在客户端实现超时,则很容易在请求完成时设置超时;例如,请参阅Tomcat 请求超时

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