繁体   English   中英

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

[英]How to limit the request execution time with Tomcat 6

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

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

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

基本思想是请求方法需要使用Timer在将来为N秒安排中断。 然后,它需要在请求处理期间定期检查以查看它是否已被中断。 最后,如果计时器在超时之前完成,则需要取消计时器。


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

(但客户端超时的问题是服务器不知道客户端已经放弃等待,并且将继续处理请求。很容易遇到大问题。想象一下需要一个请求比超时要长很多,再加上一个客户端,它反复重试已经超时的请求...)

使用HttpConnector配置connectionTimeout

修改你的server.xml

<Connector ... connectionTimeout="xxxx"

其中xxxx是毫秒数

Sthepen的上述陈述不正确。 在客户端,当它放弃或者关闭浏览器时,浏览器当然不会使它的套接字保持活动状态。 它执行套接字关闭(恢复内存和端口,对吧?)。 关机程序会将放下的信号发送到服务器端插座 - 我相信RST。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM