Move WorkQueue out of GerritGlobalModule
This makes it easier to better manage the thread queue within the JVM, declare it once at the "top level" makes it less likely we bound more than one work queue into the same JVM, creating too many threads. Change-Id: I22d6b98e925e2d712193af02aff94c260f1395e7
This commit is contained in:
@@ -34,6 +34,7 @@ import com.google.gerrit.server.config.CanonicalWebUrlModule;
|
||||
import com.google.gerrit.server.config.CanonicalWebUrlProvider;
|
||||
import com.google.gerrit.server.config.GerritGlobalModule;
|
||||
import com.google.gerrit.server.config.MasterNodeStartup;
|
||||
import com.google.gerrit.server.git.WorkQueue;
|
||||
import com.google.gerrit.server.mail.SmtpEmailSender;
|
||||
import com.google.gerrit.server.schema.SchemaVersionCheck;
|
||||
import com.google.gerrit.server.ssh.NoSshModule;
|
||||
@@ -189,6 +190,7 @@ public class Daemon extends SiteProgram {
|
||||
final List<Module> modules = new ArrayList<Module>();
|
||||
modules.add(SchemaVersionCheck.module());
|
||||
modules.add(new LogFileCompressor.Module());
|
||||
modules.add(new WorkQueue.Module());
|
||||
modules.add(cfgInjector.getInstance(GerritGlobalModule.class));
|
||||
modules.add(new SmtpEmailSender.Module());
|
||||
if (httpd) {
|
||||
|
@@ -49,7 +49,6 @@ import com.google.gerrit.server.git.ReplicationQueue;
|
||||
import com.google.gerrit.server.git.SecureCredentialsProvider;
|
||||
import com.google.gerrit.server.git.TagCache;
|
||||
import com.google.gerrit.server.git.TransferConfig;
|
||||
import com.google.gerrit.server.git.WorkQueue;
|
||||
import com.google.gerrit.server.mail.FromAddressGenerator;
|
||||
import com.google.gerrit.server.mail.FromAddressGeneratorProvider;
|
||||
import com.google.gerrit.server.patch.PatchListCacheImpl;
|
||||
@@ -162,7 +161,6 @@ public class GerritGlobalModule extends FactoryModule {
|
||||
bind(PermissionCollection.Factory.class);
|
||||
|
||||
bind(FileTypeRegistry.class).to(MimeUtilFileTypeRegistry.class);
|
||||
bind(WorkQueue.class);
|
||||
bind(ToolsCatalog.class);
|
||||
bind(EventFactory.class);
|
||||
bind(TransferConfig.class);
|
||||
@@ -188,7 +186,6 @@ public class GerritGlobalModule extends FactoryModule {
|
||||
@Override
|
||||
protected void configure() {
|
||||
listener().to(CachePool.Lifecycle.class);
|
||||
listener().to(WorkQueue.Lifecycle.class);
|
||||
listener().to(VelocityLifecycle.class);
|
||||
}
|
||||
});
|
||||
|
@@ -15,6 +15,7 @@
|
||||
package com.google.gerrit.server.git;
|
||||
|
||||
import com.google.gerrit.lifecycle.LifecycleListener;
|
||||
import com.google.gerrit.lifecycle.LifecycleModule;
|
||||
import com.google.gerrit.reviewdb.Project.NameKey;
|
||||
import com.google.gerrit.server.util.IdGenerator;
|
||||
import com.google.inject.Inject;
|
||||
@@ -61,6 +62,14 @@ public class WorkQueue {
|
||||
}
|
||||
}
|
||||
|
||||
public static class Module extends LifecycleModule {
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(WorkQueue.class);
|
||||
listener().to(Lifecycle.class);
|
||||
}
|
||||
}
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(WorkQueue.class);
|
||||
private static final UncaughtExceptionHandler LOG_UNCAUGHT_EXCEPTION =
|
||||
new UncaughtExceptionHandler() {
|
||||
|
@@ -26,6 +26,7 @@ import com.google.gerrit.server.config.GerritServerConfigModule;
|
||||
import com.google.gerrit.server.config.MasterNodeStartup;
|
||||
import com.google.gerrit.server.config.SitePath;
|
||||
import com.google.gerrit.server.git.LocalDiskRepositoryManager;
|
||||
import com.google.gerrit.server.git.WorkQueue;
|
||||
import com.google.gerrit.server.mail.SmtpEmailSender;
|
||||
import com.google.gerrit.server.schema.DataSourceProvider;
|
||||
import com.google.gerrit.server.schema.DatabaseModule;
|
||||
@@ -179,6 +180,7 @@ public class WebAppInitializer extends GuiceServletContextListener {
|
||||
|
||||
private Injector createSysInjector() {
|
||||
final List<Module> modules = new ArrayList<Module>();
|
||||
modules.add(new WorkQueue.Module());
|
||||
modules.add(cfgInjector.getInstance(GerritGlobalModule.class));
|
||||
modules.add(new SmtpEmailSender.Module());
|
||||
modules.add(new CanonicalWebUrlModule() {
|
||||
|
Reference in New Issue
Block a user