Merge "WorkQueue: Add a convenience method for scheduling a periodic background job"
This commit is contained in:
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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<Task<?>> getTasks() {
|
||||
final List<Task<?>> r = new ArrayList<>();
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user