summaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/container/jdisc
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2016-07-07 19:05:13 +0200
committerHarald Musum <musum@yahoo-inc.com>2016-07-07 19:05:13 +0200
commit815c6dce4e5ed52fc1dd5eabce721ce1ae49ee89 (patch)
treeebda55263b54949604acd4f9bb1a87d613b12037 /container-core/src/main/java/com/yahoo/container/jdisc
parent17f497e0b727415ff92d309073c784bceb7597d7 (diff)
Provide method for overriding timeout for handler
VESPA-3979
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/jdisc')
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java
index d54177a91e8..5cabe8a9ec6 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java
@@ -15,6 +15,7 @@ import com.yahoo.jdisc.handler.ResponseDispatch;
import com.yahoo.jdisc.handler.ResponseHandler;
import com.yahoo.log.LogLevel;
+import java.time.Duration;
import java.util.Map;
import java.util.concurrent.Executor;
import java.util.concurrent.RejectedExecutionException;
@@ -37,7 +38,7 @@ import javax.annotation.concurrent.GuardedBy;
public abstract class ThreadedRequestHandler extends AbstractRequestHandler {
private static final Logger log = Logger.getLogger(ThreadedRequestHandler.class.getName());
- private static final int TIMEOUT = Integer.parseInt(System.getProperty("ThreadedRequestHandler.timeout", "300"));
+ private static final Duration TIMEOUT = Duration.ofSeconds(Integer.parseInt(System.getProperty("ThreadedRequestHandler.timeout", "300")));
private final Executor executor;
protected final Metric metric;
private final boolean allowAsyncResponse;
@@ -81,7 +82,12 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler {
*/
@Override
public final ContentChannel handleRequest(Request request, ResponseHandler responseHandler) {
- request.setTimeout(TIMEOUT, TimeUnit.SECONDS);
+ if (request.getTimeout(TimeUnit.SECONDS) == null) {
+ Duration timeout = getTimeout();
+ if (timeout != null) {
+ request.setTimeout(timeout.getSeconds(), TimeUnit.SECONDS);
+ }
+ }
BufferedContentChannel content = new BufferedContentChannel();
final RequestTask command = new RequestTask(request, content, responseHandler);
try {
@@ -95,6 +101,10 @@ public abstract class ThreadedRequestHandler extends AbstractRequestHandler {
return content;
}
+ public Duration getTimeout() {
+ return TIMEOUT;
+ }
+
private void logRejectedRequests() {
if (numRejectedRequests == 0) {
return;