--- title: "查询待办任务" date: 2026-03-17 lastmod: 2026-03-17 description: "介绍如何使用 Cat API 查询 Easysearch 集群中待处理的集群管理任务。" tags: ["Cat API", "集群管理", "任务"] summary: "此 API 用于返回集群中待处理任务(Pending Cluster Tasks)的简洁表示。 API # GET /_cat/pending_tasks API 的作用 # 以表格形式显示当前集群中等待执行的集群管理任务信息。这些任务通常是需要在主节点上执行的集群级操作,包括: 任务插入顺序:任务在队列中的位置 等待时间:任务在队列中等待的时间 任务优先级:任务的执行优先级 任务来源:任务的来源描述 待办任务通常在主节点负载较高或网络延迟较大时堆积。长时间堆积可能表示集群管理操作存在瓶颈。 API 的参数 # 此 API 没有路由参数。 查询字符串参数 # 参数 类型 是否必需 默认值 描述 format string 可选 text 响应格式 可选值:json, yaml, text h string 可选 默认列 指定显示的列,逗号分隔 help boolean 可选 false 显示帮助信息 local boolean 可选 false 是否从本地节点获取信息 master_timeout time 可选 30s 等待主节点响应的超时时间 s string 可选 - 排序列" --- 此 API 用于返回集群中待处理任务(Pending Cluster Tasks)的简洁表示。 ## API ``` GET /_cat/pending_tasks ``` ## API 的作用 以表格形式显示当前集群中等待执行的集群管理任务信息。这些任务通常是需要在主节点上执行的集群级操作,包括: - **任务插入顺序**:任务在队列中的位置 - **等待时间**:任务在队列中等待的时间 - **任务优先级**:任务的执行优先级 - **任务来源**:任务的来源描述 待办任务通常在主节点负载较高或网络延迟较大时堆积。长时间堆积可能表示集群管理操作存在瓶颈。 ## API 的参数 此 API **没有**路由参数。 ### 查询字符串参数 | 参数 | 类型 | 是否必需 | 默认值 | 描述 | |------|------|----------|--------|------| | `format` | string | 可选 | text | 响应格式
可选值:`json`, `yaml`, `text` | | `h` | string | 可选 | 默认列 | 指定显示的列,逗号分隔 | | `help` | boolean | 可选 | false | 显示帮助信息 | | `local` | boolean | 可选 | false | 是否从本地节点获取信息 | | `master_timeout` | time | 可选 | 30s | 等待主节点响应的超时时间 | | `s` | string | 可选 | - | 排序列
支持 `:asc` 和 `:desc` | | `time` | string | 可选 | - | 时间显示单位
可选值:`d`, `h`, `m`, `s`, `ms`, `micros`, `nanos` | | `v` | boolean | 可选 | false | 详细模式,显示列头 | ## 返回的字段信息 | 列名 | 别名 | 描述 | 对齐方式 | |------|------|------|----------| | `insertOrder` | `o` | 任务插入顺序 | 右对齐 | | `timeInQueue` | `t` | 任务在队列中的时间 | 右对齐 | | `priority` | `p` | 任务优先级 | 左对齐 | | `source` | `s` | 任务来源 | 左对齐 | ## 任务优先级 任务优先级从高到低为: | 优先级 | 描述 | |--------|------| | `URGENT` | 紧急任务,最高优先级 | | `HIGH` | 高优先级任务 | | `MEDIUM` | 中等优先级任务 | | `LOW` | 低优先级任务 | | `LANGUID` | 慢速任务,最低优先级 | ## 请求示例 ```bash # 查询待办任务 GET /_cat/pending_tasks # 显示列头 GET /_cat/pending_tasks?v # 使用 JSON 格式 GET /_cat/pending_tasks?format=json # 按等待时间降序排序 GET /_cat/pending_tasks?s=timeInQueue:desc # 设置时间单位为秒 GET /_cat/pending_tasks?time=s # 只显示特定列 GET /_cat/pending_tasks?h=insertOrder,priority,source # 显示帮助信息 GET /_cat/pending_tasks?help ``` ## 响应示例 ### 文本格式(默认) ``` insertOrder timeInQueue priority source 1 2.3s HIGH update-mapping [index1] 2 1.8s HIGH put-mapping [index2] 3 850ms MEDIUM create-index [index3] 4 120ms LOW cluster_reroute ``` ### JSON 格式 ```json [ { "insert_order": "1", "time_in_queue": "2.3s", "priority": "HIGH", "source": "update-mapping [index1]" }, { "insert_order": "2", "time_in_queue": "1.8s", "priority": "HIGH", "source": "put-mapping [index2]" } ] ``` ### 无待办任务时的响应 ``` insertOrder timeInQueue priority source ``` ### 帮助信息 ``` insertOrder | o | task insertion order timeInQueue | t | time in queue priority | p | task priority source | s | task source ``` ## 使用场景 1. **集群监控**:监控集群管理任务的堆积情况 2. **性能诊断**:诊断主节点是否过载 3. **问题排查**:查找导致集群操作缓慢的原因 4. **容量规划**:评估是否需要增加主节点资源 ## 常见任务来源 | 任务来源 | 描述 | |----------|------| | `update-mapping` | 更新索引映射 | | `put-mapping` | 添加字段映射 | | `create-index` | 创建索引 | | `delete-index` | 删除索引 | | `cluster_reroute` | 集群路由重分配 | | `gateway-meta-state` | 网关元数据状态更新 | | `master-failover` | 主节点故障切换 | ## 待办任务堆积的原因 1. **主节点过载**:主节点处理能力不足 2. **网络延迟**:节点间网络通信延迟高 3. **频繁的集群状态更新**:大量并发的集群管理操作 4. **慢速操作**:某些耗时操作阻塞了任务队列 ## 排查建议 1. **检查主节点资源**:查看主节点的 CPU、内存使用情况 2. **查看任务详情**:使用 `GET /_cluster/pending_tasks` 获取更详细的信息 3. **优化集群操作**:减少频繁的小操作,合并为批量操作 4. **增加主节点资源**:考虑升级主节点配置 ## 注意事项 1. 此 API 只支持 GET 方法 2. 待办任务列表动态变化,每次查询结果可能不同 3. 任务按插入顺序排列,数字越小表示越早进入队列 4. 无待办任务时返回空表格 5. `local=true` 时可能返回过时信息 ## 与相关 API 的配合 | API | 功能 | |-----|------| | `GET /_cat/pending_tasks` | 查看待办任务的简洁视图 | | `GET /_cluster/pending_tasks` | 查看待办任务的详细信息 | ## 最佳实践 1. **定期监控**:定期检查待办任务数量和等待时间 2. **设置告警**:当任务堆积超过阈值时告警 3. **分析模式**:分析任务来源,找出频繁操作的来源 4. **优化操作**:优化应用层逻辑,减少不必要的集群管理操作 ## 相关文档 - [获取集群状态](./get-cluster-state.md) - [查询主节点](./get-master-node.md) - [查询节点](./get-node.md)