我有一个 jetty 服务器,配置为在 30 秒后使请求过期,这是 xml 配置文件中的配置行:
<Set name="maxIdleTime">30000</Set>
此服务器接受两种请求:必须实时处理的请求和来自批处理脚本的请求,这些请求可能需要一些时间才能得到答复。
特别是一个请求预计需要几分钟。 现在我想让这个请求完全执行而不会超时,同时将“正常”实时请求的过期时间保持在较低水平,以避免潜在的拥塞。
我的猜测是我必须做这样的事情:
public class MyServlet extends HttpServlet {
...
public void doGet(HttpServletRequest pRequest, HttpServletResponse pResponse)
throws IOException, ServletException {
if (pRequest is of the type allowed to be slow) {
set max idle time for this request very high (or infinite)
}
server.execute(pRequest, pResponse);
}
}
我正在使用 jetty 6.1.2rc4
最佳答案
maxIdleTime
参数不配置允许请求花费的时间。当 Jetty 决定收缩线程池时,该值用于从线程池中移除空闲线程。请参阅 QueuedThreadPool#setMaxIdleTime() 的 javadoc .
如果请求超时,可能是由于一侧或两侧的套接字超时参数。
关于java - jetty :动态改变空闲时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2274026/