default async timeout to server idle timeout

This commit is contained in:
Xavier Léauté 2014-07-22 16:55:21 -07:00
parent 09e2f13ffc
commit 00f086665c
2 changed files with 12 additions and 0 deletions

View File

@ -37,6 +37,7 @@ import io.druid.guice.annotations.Json;
import io.druid.guice.annotations.Smile; import io.druid.guice.annotations.Smile;
import io.druid.query.DataSourceUtil; import io.druid.query.DataSourceUtil;
import io.druid.query.Query; import io.druid.query.Query;
import io.druid.server.initialization.ServerConfig;
import io.druid.server.log.RequestLogger; import io.druid.server.log.RequestLogger;
import io.druid.server.router.QueryHostFinder; import io.druid.server.router.QueryHostFinder;
import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffer;
@ -66,6 +67,7 @@ public class AsyncQueryForwardingServlet extends HttpServlet
private static final EmittingLogger log = new EmittingLogger(AsyncQueryForwardingServlet.class); private static final EmittingLogger log = new EmittingLogger(AsyncQueryForwardingServlet.class);
private static final Joiner COMMA_JOIN = Joiner.on(","); private static final Joiner COMMA_JOIN = Joiner.on(",");
private final ServerConfig config;
private final ObjectMapper jsonMapper; private final ObjectMapper jsonMapper;
private final ObjectMapper smileMapper; private final ObjectMapper smileMapper;
private final QueryHostFinder hostFinder; private final QueryHostFinder hostFinder;
@ -74,6 +76,7 @@ public class AsyncQueryForwardingServlet extends HttpServlet
private final RequestLogger requestLogger; private final RequestLogger requestLogger;
public AsyncQueryForwardingServlet( public AsyncQueryForwardingServlet(
ServerConfig config,
@Json ObjectMapper jsonMapper, @Json ObjectMapper jsonMapper,
@Smile ObjectMapper smileMapper, @Smile ObjectMapper smileMapper,
QueryHostFinder hostFinder, QueryHostFinder hostFinder,
@ -82,6 +85,7 @@ public class AsyncQueryForwardingServlet extends HttpServlet
RequestLogger requestLogger RequestLogger requestLogger
) )
{ {
this.config = config;
this.jsonMapper = jsonMapper; this.jsonMapper = jsonMapper;
this.smileMapper = smileMapper; this.smileMapper = smileMapper;
this.hostFinder = hostFinder; this.hostFinder = hostFinder;
@ -95,6 +99,8 @@ public class AsyncQueryForwardingServlet extends HttpServlet
throws ServletException, IOException throws ServletException, IOException
{ {
final AsyncContext asyncContext = req.startAsync(req, res); final AsyncContext asyncContext = req.startAsync(req, res);
// default async timeout to be same as maxIdleTime for now
asyncContext.setTimeout(config.getMaxIdleTime().toStandardDuration().getMillis());
asyncContext.start( asyncContext.start(
new Runnable() new Runnable()
{ {

View File

@ -29,6 +29,7 @@ import io.druid.guice.annotations.Json;
import io.druid.guice.annotations.Smile; import io.druid.guice.annotations.Smile;
import io.druid.server.AsyncQueryForwardingServlet; import io.druid.server.AsyncQueryForwardingServlet;
import io.druid.server.initialization.JettyServerInitializer; import io.druid.server.initialization.JettyServerInitializer;
import io.druid.server.initialization.ServerConfig;
import io.druid.server.log.RequestLogger; import io.druid.server.log.RequestLogger;
import io.druid.server.router.QueryHostFinder; import io.druid.server.router.QueryHostFinder;
import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Handler;
@ -38,12 +39,14 @@ import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.servlets.AsyncGzipFilter;
import org.eclipse.jetty.servlets.GzipFilter; import org.eclipse.jetty.servlets.GzipFilter;
/** /**
*/ */
public class RouterJettyServerInitializer implements JettyServerInitializer public class RouterJettyServerInitializer implements JettyServerInitializer
{ {
private final ServerConfig config;
private final ObjectMapper jsonMapper; private final ObjectMapper jsonMapper;
private final ObjectMapper smileMapper; private final ObjectMapper smileMapper;
private final QueryHostFinder hostFinder; private final QueryHostFinder hostFinder;
@ -53,6 +56,7 @@ public class RouterJettyServerInitializer implements JettyServerInitializer
@Inject @Inject
public RouterJettyServerInitializer( public RouterJettyServerInitializer(
ServerConfig config,
@Json ObjectMapper jsonMapper, @Json ObjectMapper jsonMapper,
@Smile ObjectMapper smileMapper, @Smile ObjectMapper smileMapper,
QueryHostFinder hostFinder, QueryHostFinder hostFinder,
@ -61,6 +65,7 @@ public class RouterJettyServerInitializer implements JettyServerInitializer
RequestLogger requestLogger RequestLogger requestLogger
) )
{ {
this.config = config;
this.jsonMapper = jsonMapper; this.jsonMapper = jsonMapper;
this.smileMapper = smileMapper; this.smileMapper = smileMapper;
this.hostFinder = hostFinder; this.hostFinder = hostFinder;
@ -76,6 +81,7 @@ public class RouterJettyServerInitializer implements JettyServerInitializer
queries.addServlet( queries.addServlet(
new ServletHolder( new ServletHolder(
new AsyncQueryForwardingServlet( new AsyncQueryForwardingServlet(
config,
jsonMapper, jsonMapper,
smileMapper, smileMapper,
hostFinder, hostFinder,