diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-10-07 17:25:55 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-10-07 17:25:55 +0200 |
commit | 958ff2da163fbe254b7baae7522c845ecfef38ad (patch) | |
tree | fb21d25ef3f148b9d5c88dfc3188c9d32684ed63 /vespaclient-container-plugin | |
parent | 322f2c1d29e55aa798037193a4f13a48a137484f (diff) |
Shut down executor and use named thread
Diffstat (limited to 'vespaclient-container-plugin')
-rw-r--r-- | vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/DocumentOperationExecutorImpl.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/DocumentOperationExecutorImpl.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/DocumentOperationExecutorImpl.java index 79c63522686..1ebef129477 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/DocumentOperationExecutorImpl.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/DocumentOperationExecutorImpl.java @@ -86,7 +86,7 @@ public class DocumentOperationExecutorImpl implements DocumentOperationExecutor private final DelayQueue throttled; private final DelayQueue timeouts; private final Map<VisitorControlHandler, VisitorSession> visits = new ConcurrentHashMap<>(); - private final Executor visitSessionShutdownExecutor = Executors.newSingleThreadExecutor(); + private final ExecutorService visitSessionShutdownExecutor = Executors.newSingleThreadExecutor(new DaemonThreadFactory("visit-session-shutdown-")); public DocumentOperationExecutorImpl(ClusterListConfig clustersConfig, AllClustersBucketSpacesConfig bucketsConfig, DocumentOperationExecutorConfig executorConfig, DocumentAccess access, Clock clock) { @@ -152,6 +152,7 @@ public class DocumentOperationExecutorImpl implements DocumentOperationExecutor @Override public void shutdown() { long shutdownMillis = clock.instant().plusSeconds(20).toEpochMilli(); + visitSessionShutdownExecutor.shutdown(); visits.values().forEach(VisitorSession::destroy); Future<?> throttleShutdown = throttled.shutdown(Duration.ofSeconds(10), context -> context.error(OVERLOAD, "Retry on overload failed due to shutdown")); @@ -160,6 +161,7 @@ public class DocumentOperationExecutorImpl implements DocumentOperationExecutor try { throttleShutdown.get(Math.max(0, shutdownMillis - clock.millis()), TimeUnit.MILLISECONDS); timeoutShutdown.get(Math.max(0, shutdownMillis - clock.millis()), TimeUnit.MILLISECONDS); + visitSessionShutdownExecutor.awaitTermination(Math.max(0, shutdownMillis - clock.millis()), TimeUnit.MILLISECONDS); } catch (InterruptedException | ExecutionException | TimeoutException e) { throttleShutdown.cancel(true); |