任务(Tasks)
- class elasticsearch.client.TasksClient
To use this client, access
client.tasks
from anElasticsearch
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
- 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:
- Return type:
- 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)
human (bool | None)
pretty (bool | None)
- Return type: