3 回答

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

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