簡體   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