我有一个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
答案 0 :(得分:1)
maxIdleTime
参数不配置允许请求的时间。当Jetty决定缩小池时,该值用于从线程池中删除空闲线程。请参阅QueuedThreadPool#setMaxIdleTime()的javadoc。
如果请求超时,则可能是由于一侧或两侧的套接字超时参数。