diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2021-02-02 08:16:17 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2021-02-02 08:16:17 +0100 |
commit | afd59b2cde4dd4fe9e09fdeddfc999c807f8aa98 (patch) | |
tree | 386fd8686cf0cb2d8d30a58dc5675c7f3a72066d | |
parent | b520261986e8a0444f2902396b15bf059a21004f (diff) |
Delegate blocking ops to executor in JobRunner
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java | 10 | ||||
-rw-r--r-- | document/src/main/java/com/yahoo/document/json/SingleDocumentParser.java | 53 |
2 files changed, 6 insertions, 57 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java index d6739581c79..73528977166 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java @@ -80,10 +80,12 @@ public class JobRunner extends ControllerMaintainer { /** Advances each of the ready steps for the given run, or marks it as finished, and stashes it. Public for testing. */ public void advance(Run run) { if ( ! run.hasFailed() - && controller().clock().instant().isAfter(run.start().plus(jobTimeout))) { - jobs.abort(run.id()); - advance(jobs.run(run.id()).get()); - } + && controller().clock().instant().isAfter(run.start().plus(jobTimeout))) + executors.execute(() -> { + jobs.abort(run.id()); + advance(jobs.run(run.id()).get()); + }); + else if (run.readySteps().isEmpty()) executors.execute(() -> finish(run.id())); else diff --git a/document/src/main/java/com/yahoo/document/json/SingleDocumentParser.java b/document/src/main/java/com/yahoo/document/json/SingleDocumentParser.java deleted file mode 100644 index 67508c61b23..00000000000 --- a/document/src/main/java/com/yahoo/document/json/SingleDocumentParser.java +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.document.json; - -import com.fasterxml.jackson.core.JsonFactory; -import com.yahoo.document.DocumentOperation; -import com.yahoo.document.DocumentPut; -import com.yahoo.document.DocumentTypeManager; -import com.yahoo.document.DocumentUpdate; -import com.yahoo.vespaxmlparser.DocumentFeedOperation; -import com.yahoo.vespaxmlparser.DocumentUpdateFeedOperation; -import com.yahoo.vespaxmlparser.FeedOperation; - -import java.io.IOException; -import java.io.InputStream; - -/** - * Parser that supports parsing PUT operation and UPDATE operation. - * - * @author dybis - */ -public class SingleDocumentParser { - - private static final JsonFactory jsonFactory = new JsonFactory().disable(JsonFactory.Feature.CANONICALIZE_FIELD_NAMES); - private DocumentTypeManager docMan; - - public SingleDocumentParser(DocumentTypeManager docMan) { - this.docMan = docMan; - } - - public FeedOperation parsePut(InputStream inputStream, String docId) { - return parse(inputStream, docId, DocumentOperationType.PUT); - } - - public FeedOperation parseUpdate(InputStream inputStream, String docId) { - return parse(inputStream, docId, DocumentOperationType.UPDATE); - } - - private FeedOperation parse(InputStream inputStream, String docId, DocumentOperationType documentOperationType) { - JsonReader reader = new JsonReader(docMan, inputStream, jsonFactory); - DocumentOperation documentOperation = reader.readSingleDocument(documentOperationType, docId); - try { - inputStream.close(); - } catch (IOException e) { - throw new IllegalStateException(e); - } - if (documentOperationType == DocumentOperationType.PUT) { - return new DocumentFeedOperation(((DocumentPut) documentOperation).getDocument(), documentOperation.getCondition()); - } else { - return new DocumentUpdateFeedOperation((DocumentUpdate) documentOperation, documentOperation.getCondition()); - } - } - -} |