Skip to content

Commit 3d7c7cf

Browse files
Add TaskManager to pluginServices (#112687)
Provide access to the TaskManager in plugins so that a RemovedTaskListener can be registered. This will allow a plugin to monitor when submitted tasks complete.
1 parent cd3d664 commit 3d7c7cf

File tree

4 files changed

+17
-2
lines changed

4 files changed

+17
-2
lines changed

docs/changelog/112687.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 112687
2+
summary: Add `TaskManager` to `pluginServices`
3+
area: Infra/Metrics
4+
type: enhancement
5+
issues: []

server/src/main/java/org/elasticsearch/node/NodeConstruction.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -855,7 +855,8 @@ private void construct(
855855
featureService,
856856
systemIndices,
857857
dataStreamGlobalRetentionSettings,
858-
documentParsingProvider
858+
documentParsingProvider,
859+
taskManager
859860
);
860861

861862
Collection<?> pluginComponents = pluginsService.flatMap(plugin -> {

server/src/main/java/org/elasticsearch/node/PluginServiceInstances.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.elasticsearch.plugins.internal.DocumentParsingProvider;
2525
import org.elasticsearch.repositories.RepositoriesService;
2626
import org.elasticsearch.script.ScriptService;
27+
import org.elasticsearch.tasks.TaskManager;
2728
import org.elasticsearch.telemetry.TelemetryProvider;
2829
import org.elasticsearch.threadpool.ThreadPool;
2930
import org.elasticsearch.watcher.ResourceWatcherService;
@@ -48,5 +49,6 @@ public record PluginServiceInstances(
4849
FeatureService featureService,
4950
SystemIndices systemIndices,
5051
DataStreamGlobalRetentionSettings dataStreamGlobalRetentionSettings,
51-
DocumentParsingProvider documentParsingProvider
52+
DocumentParsingProvider documentParsingProvider,
53+
TaskManager taskManager
5254
) implements Plugin.PluginServices {}

server/src/main/java/org/elasticsearch/plugins/Plugin.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.elasticsearch.plugins.internal.DocumentParsingProvider;
3232
import org.elasticsearch.repositories.RepositoriesService;
3333
import org.elasticsearch.script.ScriptService;
34+
import org.elasticsearch.tasks.TaskManager;
3435
import org.elasticsearch.telemetry.TelemetryProvider;
3536
import org.elasticsearch.threadpool.ExecutorBuilder;
3637
import org.elasticsearch.threadpool.ThreadPool;
@@ -165,6 +166,12 @@ public interface PluginServices {
165166
* A provider of utilities to observe and report parsing of documents
166167
*/
167168
DocumentParsingProvider documentParsingProvider();
169+
170+
/**
171+
* The task manager for the node. This should only be used by plugins
172+
* to track task removal by registering a RemovedTaskListener.
173+
*/
174+
TaskManager taskManager();
168175
}
169176

170177
/**

0 commit comments

Comments
 (0)