Make thread pool configurable Bug: Issue 16248 Change-Id: I8677540df22dfa99a12720a95a7aa22854181005
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/GitRepoMetricsConfig.java b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/GitRepoMetricsConfig.java index a588a73..8176813 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/GitRepoMetricsConfig.java +++ b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/GitRepoMetricsConfig.java
@@ -43,4 +43,8 @@ public Long getGracePeriodMs() { return config.getTimeUnit("git-repo-metrics", null, "gracePeriod", 0L, TimeUnit.MILLISECONDS); } + + public int getPoolSize() { + return config.getInt("git-repo-metrics", null, "poolSize", 1); + } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/UpdateGitMetricsExecutorProvider.java b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/UpdateGitMetricsExecutorProvider.java index 6e74c88..41ecfbb 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/UpdateGitMetricsExecutorProvider.java +++ b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/UpdateGitMetricsExecutorProvider.java
@@ -26,9 +26,12 @@ private ExecutorService executor; @Inject - UpdateGitMetricsExecutorProvider(WorkQueue workQueue, @PluginName String pluginName) { - // TODO Make pool size configurable - executor = workQueue.createQueue(1, "[" + pluginName + " plugin]"); + UpdateGitMetricsExecutorProvider( + WorkQueue workQueue, + @PluginName String pluginName, + GitRepoMetricsConfig gitRepoMetricsConfig) { + executor = + workQueue.createQueue(gitRepoMetricsConfig.getPoolSize(), "[" + pluginName + " plugin]"); } @Override
diff --git a/src/resources/Documentation/config.md b/src/resources/Documentation/config.md index 963f413..acda594 100644 --- a/src/resources/Documentation/config.md +++ b/src/resources/Documentation/config.md
@@ -38,4 +38,6 @@ ``` _git-repo-metrics.gracePeriod_: Grace period between samples collection. Used to avoid aggressive -metrics collection. By default, 0. \ No newline at end of file +metrics collection. By default, 0. + +_git-repo-metrics.poolSize_: Number of threads available to collect metrics. By default, 1. \ No newline at end of file