任务(Tasks)

class elasticsearch.client.TasksClient

To use this client, access client.tasks from an Elasticsearch client. For example:

from elasticsearch import Elasticsearch

# Create the client instance
client = Elasticsearch(...)
# Use the tasks client
client.tasks.<method>(...)
cancel(*, task_id=None, actions=None, error_trace=None, filter_path=None, human=None, nodes=None, parent_task_id=None, pretty=None, wait_for_completion=None)

取消任务。

警告:任务管理API是新功能,仍应被视为测试版特性。 该API可能会以不向后兼容的方式发生变化。

任务在被取消后可能仍会继续运行一段时间,因为它可能无法立即安全停止当前活动。 也可能Elasticsearch必须先完成其他任务的工作才能处理取消请求。 获取任务信息API将继续列出这些已取消的任务,直到它们完成。 响应中的cancelled标志表示取消命令已被处理,任务将尽快停止。

要排查为什么已取消的任务没有立即完成,可使用带有?detailed参数的获取任务信息API来识别系统正在运行的其他任务。 也可以使用节点热线程API获取系统正在执行的工作的详细信息,而不是完成已取消的任务。

https://www.elastic.co/docs/api/doc/elasticsearch/group/endpoint-tasks

Parameters:
  • task_id (str | None) – 任务标识符。

  • actions (str | Sequence[str] | None) – 用于限制请求的动作的逗号分隔列表或通配符表达式。

  • nodes (Sequence[str] | None) – 用于限制请求的节点ID或名称的逗号分隔列表。

  • parent_task_id (str | None) – 用于限制任务的父任务ID。

  • wait_for_completion (bool | None) – 如果为true,请求将阻塞直到所有找到的任务完成。

  • error_trace (bool | None)

  • filter_path (str | Sequence[str] | None)

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]

get(*, task_id, error_trace=None, filter_path=None, human=None, pretty=None, timeout=None, wait_for_completion=None)

获取任务信息。 获取当前在集群中运行的任务的信息。

警告:任务管理API是新功能,仍应被视为测试版特性。 该API可能会以不向后兼容的方式发生变化。

如果未找到任务标识符,404响应代码表示没有匹配请求的资源。

https://www.elastic.co/docs/api/doc/elasticsearch/group/endpoint-tasks

Parameters:
  • task_id (str) – 任务标识符。

  • timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 等待响应的时长。如果在超时到期前未收到响应,请求将失败并返回错误。

  • wait_for_completion (bool | None) – 如果为`true`,请求将阻塞直到任务完成。

  • error_trace (bool | None)

  • filter_path (str | Sequence[str] | None)

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]

list(*, actions=None, detailed=None, error_trace=None, filter_path=None, group_by=None, human=None, nodes=None, parent_task_id=None, pretty=None, timeout=None, wait_for_completion=None)

获取所有任务。 获取当前在集群中一个或多个节点上运行的任务的信息。

警告:任务管理API是新功能,仍应被视为测试版特性。 该API可能会以不向后兼容的方式发生变化。

识别运行中的任务

当在HTTP请求头中提供X-Opaque-Id header时,它将在响应头以及任务信息的headers字段中返回。 这使您能够跟踪特定调用或将特定任务与启动它们的客户端关联。 例如:

curl -i -H "X-Opaque-Id: 123456" "http://localhost:9200/_tasks?group_by=parents"

API返回以下结果:

HTTP/1.1 200 OK
X-Opaque-Id: 123456
content-type: application/json; charset=UTF-8
content-length: 831

{
  "tasks" : {
    "u5lcZHqcQhu-rUoFaqDphA:45" : {
      "node" : "u5lcZHqcQhu-rUoFaqDphA",
      "id" : 45,
      "type" : "transport",
      "action" : "cluster:monitor/tasks/lists",
      "start_time_in_millis" : 1513823752749,
      "running_time_in_nanos" : 293139,
      "cancellable" : false,
      "headers" : {
        "X-Opaque-Id" : "123456"
      },
      "children" : [
        {
          "node" : "u5lcZHqcQhu-rUoFaqDphA",
          "id" : 46,
          "type" : "direct",
          "action" : "cluster:monitor/tasks/lists[n]",
          "start_time_in_millis" : 1513823752750,
          "running_time_in_nanos" : 92133,
          "cancellable" : false,
          "parent_task_id" : "u5lcZHqcQhu-rUoFaqDphA:45",
          "headers" : {
            "X-Opaque-Id" : "123456"
          }
        }
      ]
    }
  }
 }

在此示例中,X-Opaque-Id: 123456是作为响应头一部分的ID。 任务headers中的X-Opaque-Id是由REST请求启动的任务的ID。 子任务headers中的X-Opaque-Id是由REST请求启动的任务的子任务ID。

https://www.elastic.co/docs/api/doc/elasticsearch/group/endpoint-tasks

Parameters:
  • actions (str | Sequence[str] | None) – 用于限制请求的动作的逗号分隔列表或通配符表达式。例如,可以使用`cluser:*`来检索所有与集群相关的任务。

  • detailed (bool | None) – 如果为`true`,响应将包含有关运行任务的详细信息。此信息有助于区分任务,但运行成本更高。

  • group_by (str | Literal['nodes', 'none', 'parents'] | None) – 用于在响应中对任务进行分组的键。任务列表可以按节点或父任务分组。

  • nodes (str | Sequence[str] | None) – 用于限制返回信息的节点ID或名称的逗号分隔列表。

  • parent_task_id (str | None) – 用于限制返回信息的父任务标识符。要返回所有任务,请省略此参数或使用值`-1`。 如果未找到父任务,API不会返回404响应代码。

  • timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 等待每个节点响应的时长。如果节点在超时到期前未响应,响应中将不包含其信息。 但是,超时的节点将包含在`node_failures`属性中。

  • wait_for_completion (bool | None) – 如果为`true`,请求将阻塞直到操作完成。

  • error_trace (bool | None)

  • filter_path (str | Sequence[str] | None)

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]