diff --git a/java/com/google/gerrit/server/account/AccountDeactivator.java b/java/com/google/gerrit/server/account/AccountDeactivator.java index c474991a77..73c47ad8cc 100644 --- a/java/com/google/gerrit/server/account/AccountDeactivator.java +++ b/java/com/google/gerrit/server/account/AccountDeactivator.java @@ -26,8 +26,6 @@ import com.google.gerrit.server.query.account.InternalAccountQuery; import com.google.inject.Inject; import com.google.inject.Provider; import java.util.Optional; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; import org.eclipse.jgit.lib.Config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,15 +61,7 @@ public class AccountDeactivator implements Runnable { if (!supportAutomaticAccountActivityUpdate) { return; } - schedule.ifPresent( - s -> { - @SuppressWarnings("unused") - Future possiblyIgnoredError = - queue - .getDefaultQueue() - .scheduleAtFixedRate( - deactivator, s.initialDelay(), s.interval(), TimeUnit.MILLISECONDS); - }); + schedule.ifPresent(s -> queue.scheduleAtFixedRate(deactivator, s)); } @Override diff --git a/java/com/google/gerrit/server/change/ChangeCleanupRunner.java b/java/com/google/gerrit/server/change/ChangeCleanupRunner.java index 5e157148b7..a887760520 100644 --- a/java/com/google/gerrit/server/change/ChangeCleanupRunner.java +++ b/java/com/google/gerrit/server/change/ChangeCleanupRunner.java @@ -25,8 +25,6 @@ import com.google.gerrit.server.util.ManualRequestContext; import com.google.gerrit.server.util.OneOffRequestContext; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,16 +53,7 @@ public class ChangeCleanupRunner implements Runnable { @Override public void start() { - cfg.getSchedule() - .ifPresent( - s -> { - @SuppressWarnings("unused") - Future possiblyIgnoredError = - queue - .getDefaultQueue() - .scheduleAtFixedRate( - runner, s.initialDelay(), s.interval(), TimeUnit.MILLISECONDS); - }); + cfg.getSchedule().ifPresent(s -> queue.scheduleAtFixedRate(runner, s)); } @Override diff --git a/java/com/google/gerrit/server/git/GarbageCollectionRunner.java b/java/com/google/gerrit/server/git/GarbageCollectionRunner.java index 367b58e684..e4316c509b 100644 --- a/java/com/google/gerrit/server/git/GarbageCollectionRunner.java +++ b/java/com/google/gerrit/server/git/GarbageCollectionRunner.java @@ -19,8 +19,6 @@ import com.google.gerrit.extensions.events.LifecycleListener; import com.google.gerrit.server.config.GcConfig; import com.google.gerrit.server.project.ProjectCache; import com.google.inject.Inject; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,17 +40,7 @@ public class GarbageCollectionRunner implements Runnable { @Override public void start() { - gcConfig - .getSchedule() - .ifPresent( - s -> { - @SuppressWarnings("unused") - Future possiblyIgnoredError = - queue - .getDefaultQueue() - .scheduleAtFixedRate( - gcRunner, s.initialDelay(), s.interval(), TimeUnit.MILLISECONDS); - }); + gcConfig.getSchedule().ifPresent(s -> queue.scheduleAtFixedRate(gcRunner, s)); } @Override diff --git a/java/com/google/gerrit/server/git/WorkQueue.java b/java/com/google/gerrit/server/git/WorkQueue.java index 0adb45a5ac..11e149c4d8 100644 --- a/java/com/google/gerrit/server/git/WorkQueue.java +++ b/java/com/google/gerrit/server/git/WorkQueue.java @@ -18,6 +18,7 @@ import com.google.gerrit.extensions.events.LifecycleListener; import com.google.gerrit.lifecycle.LifecycleModule; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.config.GerritServerConfig; +import com.google.gerrit.server.config.ScheduleConfig.Schedule; import com.google.gerrit.server.util.IdGenerator; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -130,6 +131,15 @@ public class WorkQueue { return executor; } + /** Executes a periodic command at a fixed schedule on the default queue. */ + public void scheduleAtFixedRate(Runnable command, Schedule schedule) { + @SuppressWarnings("unused") + Future possiblyIgnoredError = + getDefaultQueue() + .scheduleAtFixedRate( + command, schedule.initialDelay(), schedule.interval(), TimeUnit.MILLISECONDS); + } + /** Get all of the tasks currently scheduled in any work queue. */ public List> getTasks() { final List> r = new ArrayList<>(); diff --git a/java/com/google/gerrit/server/group/PeriodicGroupIndexer.java b/java/com/google/gerrit/server/group/PeriodicGroupIndexer.java index e99440b56c..d30945f141 100644 --- a/java/com/google/gerrit/server/group/PeriodicGroupIndexer.java +++ b/java/com/google/gerrit/server/group/PeriodicGroupIndexer.java @@ -32,7 +32,6 @@ import com.google.gerrit.server.group.db.GroupNameNotes; import com.google.gerrit.server.index.group.GroupIndexer; import com.google.inject.Inject; import com.google.inject.Provider; -import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.Repository; @@ -98,12 +97,7 @@ public class PeriodicGroupIndexer implements Runnable { .setSubsection("scheduledIndexer") .buildSchedule() .orElseGet(() -> Schedule.createOrFail(TimeUnit.MINUTES.toMillis(5), "00:00")); - @SuppressWarnings("unused") - Future possiblyIgnoredError = - queue - .getDefaultQueue() - .scheduleAtFixedRate( - runner, schedule.initialDelay(), schedule.interval(), TimeUnit.MILLISECONDS); + queue.scheduleAtFixedRate(runner, schedule); } @Override