码头中的maxidletime什么时候被触发?
答案 0 :(得分:4)
maxIdleTime设置被传递给操作系统的Socket处理程序,并成为该套接字的超时值。如果连接的另一端使连接保持活动状态,则操作系统将永远不会关闭连接。只要操作系统认为连接仍然“活着”,Jetty的线程就会等待。
答案 1 :(得分:3)
maxIdle时间最初传递给套接字sotimeout。但是,现在jetty是异步的,它并没有像这样严格使用,因为sotimeout只适用于阻塞操作。
而是在两种情况下使用超时:
1)如果连接空闲(没有未完成的响应),那么如果超时到期,则连接将被关闭。
2)如果正在尝试IO操作(通常是来自servlet的阻塞读取或写入),则应用超时几乎就像使用阻塞套接字读取实现并且它是soTimeout - 即如果IO读/写在超时期限内没有任何进展,操作将因TimeoutException而失败。
注意在jetty-9中,maxIldeTime已重命名为idleTimeout