2010-06-22 53 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