aboutsummaryrefslogtreecommitdiffstats
path: root/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java')
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java
index ca4648678a5..4d887616093 100644
--- a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java
+++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingTask.java
@@ -17,6 +17,8 @@ import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.concurrent.RejectedExecutionException;
+import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.atomic.AtomicLong;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -36,13 +38,23 @@ public class DocumentProcessingTask implements Comparable<DocumentProcessingTask
private final static AtomicLong seq = new AtomicLong();
private final long seqNum;
private final DocprocService service;
+ private final ThreadPoolExecutor executor;
public DocumentProcessingTask(RequestContext requestContext, DocumentProcessingHandler docprocHandler,
- DocprocService service) {
+ DocprocService service, ThreadPoolExecutor executor) {
seqNum = seq.getAndIncrement();
this.requestContext = requestContext;
this.docprocHandler = docprocHandler;
this.service = service;
+ this.executor = executor;
+ }
+
+ void submit() {
+ try {
+ executor.execute(this);
+ } catch (RejectedExecutionException ree) {
+ queueFull();
+ }
}
@Override