3 回答

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

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以在server.xml中設(shè)置默認(rèn)超時(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"/>
添加回答
舉報(bào)