2016-03-29 09:29:21 -04:00
|
|
|
[[tasks]]
|
|
|
|
== Task Management API
|
|
|
|
|
|
|
|
experimental[The Task Management API is new and should still be considered experimental. The API may change in ways that are not backwards compatible]
|
|
|
|
|
|
|
|
[float]
|
|
|
|
=== Current Tasks Information
|
|
|
|
|
|
|
|
The task management API allows to retrieve information about the tasks currently
|
|
|
|
executing on one or more nodes in the cluster.
|
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
2016-04-29 10:42:03 -04:00
|
|
|
GET _tasks <1>
|
|
|
|
GET _tasks?nodes=nodeId1,nodeId2 <2>
|
|
|
|
GET _tasks?nodes=nodeId1,nodeId2&actions=cluster:* <3>
|
2016-03-29 09:29:21 -04:00
|
|
|
--------------------------------------------------
|
2016-05-09 09:42:23 -04:00
|
|
|
// CONSOLE
|
2016-03-29 09:29:21 -04:00
|
|
|
|
|
|
|
<1> Retrieves all tasks currently running on all nodes in the cluster.
|
|
|
|
<2> Retrieves all tasks running on nodes `nodeId1` and `nodeId2`. See <<cluster-nodes>> for more info about how to select individual nodes.
|
|
|
|
<3> Retrieves all cluster-related tasks running on nodes `nodeId1` and `nodeId2`.
|
|
|
|
|
|
|
|
The result will look similar to the following:
|
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
|
|
|
{
|
|
|
|
"nodes" : {
|
|
|
|
"oTUltX4IQMOUUVeiohTt8A" : {
|
|
|
|
"name" : "Tamara Rahn",
|
|
|
|
"transport_address" : "127.0.0.1:9300",
|
|
|
|
"host" : "127.0.0.1",
|
|
|
|
"ip" : "127.0.0.1:9300",
|
|
|
|
"tasks" : {
|
|
|
|
"oTUltX4IQMOUUVeiohTt8A:124" : {
|
|
|
|
"node" : "oTUltX4IQMOUUVeiohTt8A",
|
|
|
|
"id" : 124,
|
|
|
|
"type" : "direct",
|
|
|
|
"action" : "cluster:monitor/tasks/lists[n]",
|
|
|
|
"start_time_in_millis" : 1458585884904,
|
|
|
|
"running_time_in_nanos" : 47402,
|
2016-03-31 18:41:45 -04:00
|
|
|
"cancellable" : false,
|
2016-03-29 09:29:21 -04:00
|
|
|
"parent_task_id" : "oTUltX4IQMOUUVeiohTt8A:123"
|
|
|
|
},
|
|
|
|
"oTUltX4IQMOUUVeiohTt8A:123" : {
|
|
|
|
"node" : "oTUltX4IQMOUUVeiohTt8A",
|
|
|
|
"id" : 123,
|
|
|
|
"type" : "transport",
|
|
|
|
"action" : "cluster:monitor/tasks/lists",
|
|
|
|
"start_time_in_millis" : 1458585884904,
|
2016-03-31 18:41:45 -04:00
|
|
|
"running_time_in_nanos" : 236042,
|
|
|
|
"cancellable" : false
|
2016-03-29 09:29:21 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
--------------------------------------------------
|
|
|
|
|
|
|
|
It is also possible to retrieve information for a particular task, or all children of a particular
|
|
|
|
tasks using the following two commands:
|
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
2016-04-29 10:42:03 -04:00
|
|
|
GET _tasks/taskId:1
|
|
|
|
GET _tasks?parent_task_id=parentTaskId:1
|
2016-03-29 09:29:21 -04:00
|
|
|
--------------------------------------------------
|
2016-05-09 09:42:23 -04:00
|
|
|
// CONSOLE
|
2016-03-29 09:29:21 -04:00
|
|
|
|
|
|
|
The task API can be also used to wait for completion of a particular task. The following call will
|
|
|
|
block for 10 seconds or until the task with id `oTUltX4IQMOUUVeiohTt8A:12345` is completed.
|
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
2016-04-29 10:42:03 -04:00
|
|
|
GET _tasks/oTUltX4IQMOUUVeiohTt8A:12345?wait_for_completion=true&timeout=10s
|
2016-03-29 09:29:21 -04:00
|
|
|
--------------------------------------------------
|
2016-05-09 09:42:23 -04:00
|
|
|
// CONSOLE
|
2016-03-29 09:29:21 -04:00
|
|
|
|
2016-04-01 17:23:12 -04:00
|
|
|
Tasks can be also listed using _cat version of the list tasks command, which accepts the same arguments
|
|
|
|
as the standard list tasks command.
|
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
2016-04-29 10:42:03 -04:00
|
|
|
GET _cat/tasks
|
2016-04-01 17:23:12 -04:00
|
|
|
--------------------------------------------------
|
2016-05-09 09:42:23 -04:00
|
|
|
// CONSOLE
|
2016-03-29 09:29:21 -04:00
|
|
|
|
|
|
|
[float]
|
|
|
|
=== Task Cancellation
|
|
|
|
|
|
|
|
If a long-running task supports cancellation, it can be cancelled by the following command:
|
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
2016-04-29 10:42:03 -04:00
|
|
|
POST _tasks/taskId:1/_cancel
|
2016-03-29 09:29:21 -04:00
|
|
|
--------------------------------------------------
|
2016-05-09 09:42:23 -04:00
|
|
|
// CONSOLE
|
2016-03-29 09:29:21 -04:00
|
|
|
|
|
|
|
The task cancellation command supports the same task selection parameters as the list tasks command, so multiple tasks
|
|
|
|
can be cancelled at the same time. For example, the following command will cancel all reindex tasks running on the
|
|
|
|
nodes `nodeId1` and `nodeId2`.
|
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
2016-04-29 10:42:03 -04:00
|
|
|
POST _tasks/_cancel?node_id=nodeId1,nodeId2&actions=*reindex
|
2016-03-29 09:29:21 -04:00
|
|
|
--------------------------------------------------
|
2016-05-09 09:42:23 -04:00
|
|
|
// CONSOLE
|
2016-03-29 09:29:21 -04:00
|
|
|
|
|
|
|
|
2016-03-24 22:59:52 -04:00
|
|
|
[float]
|
|
|
|
=== Task Grouping
|
2016-03-29 09:29:21 -04:00
|
|
|
|
2016-03-24 22:59:52 -04:00
|
|
|
The task lists returned by task API commands can be grouped either by nodes (default) or by parent tasks using the `group_by` parameter.
|
|
|
|
The following command will change the grouping to parent tasks:
|
2016-03-29 09:29:21 -04:00
|
|
|
|
2016-03-24 22:59:52 -04:00
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
2016-04-29 10:42:03 -04:00
|
|
|
GET _tasks?group_by=parents
|
2016-03-24 22:59:52 -04:00
|
|
|
--------------------------------------------------
|
2016-05-09 09:42:23 -04:00
|
|
|
// CONSOLE
|