2010-06-22 52 views

回答

4

maxIdleTime設置被傳遞給操作系統的Socket處理程序,併成爲該套接字的超時值。如果連接的另一端保持連接處於活動狀態,則連接永遠不會被操作系統關閉。只要操作系統認爲連接仍然「活着」,Jetty的線程就會等待。

3

maxIdle時間最初傳遞給套接字sotimeout。但是,現在該碼頭是異步的,並不嚴格使用,因爲sotimeout僅適用於阻止操作。

相反超時在兩種情況下使用:

1)如果連接是空閒(無響應優秀),則如果該超時期滿的連接將被關閉。 2)如果正在嘗試IO操作(通常是從servlet阻塞讀取或寫入),那麼應用該超時幾乎就像它使用阻塞套接字讀取一樣實施,並且它是一個soTimeout - 即如果IO讀取/寫入在超時期限內沒有任何進展,操作將失敗並出現TimeoutException。

注意,在碼頭-9,maxIldeTime已更名的idleTimeout

+0

我不能讓這個設置的工作對我的使用情況http://stackoverflow.com/questions/36885803/jetty-interrupt-long-lasting-requests-超時更早&& https://github.com/graphhopper/graphhopper/issues/636還是我誤解了你的答案? – Karussell 2016-04-27 09:47:55