3 回答

TA貢獻2080條經驗 獲得超4個贊
如果您試圖阻止請求運行太長時間,那么在Tomcat中設置超時將無濟于事。正如克里斯所說,您可以為Tomcat設置全局超時值。但是,從“ Apache Tomcat連接器-通用方法超時”中,請參閱“答復超時”部分:
JK還可以對請求答復使用超時。此超時不能衡量響應的完整處理時間。而是控制連續響應數據包之間的時間間隔是多少。
在大多數情況下,這是人們真正想要的??紤]長時間運行的下載。您將無法設置有效的全局回復超時,因為下載可能會持續幾分鐘。但是,大多數應用程序在開始返回響應之前的處理時間有限。對于這些應用程序,您可以設置一個明確的答復超時。與答復超時不協調的應用程序是批處理類型的應用程序,數據倉庫和報告應用程序,它們預計將需要較長的處理時間。
如果JK中止了等待響應的時間,因為觸發了回復超時,則無法停止后端的處理。盡管您釋放了Web服務器上的處理資源,但是請求將繼續在后端運行-一旦觸發了回復超時,將無法發送任何結果。
因此,Tomcat將檢測到該servlet在超時時間內未響應,并將回發給用戶,但不會停止線程的運行。我認為您無法實現自己想做的事情。

TA貢獻1812條經驗 獲得超5個贊
您可以在server.xml中設置默認超時
<Connector URIEncoding="UTF-8"
acceptCount="100"
connectionTimeout="20000"
disableUploadTimeout="true"
enableLookups="false"
maxHttpHeaderSize="8192"
maxSpareThreads="75"
maxThreads="150"
minSpareThreads="25"
port="7777"
redirectPort="8443"/>
添加回答
舉報