summaryrefslogtreecommitdiffstats
path: root/container-search/src
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-12-13 14:17:37 +0100
committerHarald Musum <musum@yahooinc.com>2023-12-13 14:17:37 +0100
commit2b8026d12cf2b299abc5b1dfca9ff66270753a3d (patch)
treef71e2d3782122a2d46400f675d4c08f341dadc0a /container-search/src
parent32b8a74701ade63457977a36aaa56cdcc5ddaf0a (diff)
Make sure to always start executor
Users on old versions will not call start, so make sure to always start executor
Diffstat (limited to 'container-search/src')
-rw-r--r--container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java b/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java
index 64be0556cff..1c4304f788b 100644
--- a/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java
+++ b/container-search/src/main/java/com/yahoo/search/logging/AbstractSpoolingLogger.java
@@ -8,6 +8,7 @@ import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Level;
/**
@@ -22,6 +23,7 @@ public abstract class AbstractSpoolingLogger extends AbstractThreadedLogger impl
protected static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(Spooler.class.getName());
private final ScheduledExecutorService executorService;
+ private final AtomicBoolean executorStarted = new AtomicBoolean(false);
protected final Spooler spooler;
@SuppressWarnings("unused") // Used by subclasses
@@ -32,11 +34,16 @@ public abstract class AbstractSpoolingLogger extends AbstractThreadedLogger impl
public AbstractSpoolingLogger(Spooler spooler) {
this.spooler = spooler;
this.executorService = new ScheduledThreadPoolExecutor(1, new DaemonThreadFactory("AbstractSpoolingLogger-send-"));
+ start();
}
/** Start processing files, must be called by subclasses */
public void start() {
- this.executorService.scheduleWithFixedDelay(this, 0, 1L, TimeUnit.SECONDS);
+ // TODO: Remove guard and always start executor when we are sure all subclasses call this method (also reduce initialDelay)
+ if ( ! executorStarted.get()) {
+ this.executorService.scheduleWithFixedDelay(this, 10, 1L, TimeUnit.SECONDS);
+ executorStarted.set(true);
+ }
}
public void run() {