
# 查询job列表(2.2.13) - ListJobs
#### 功能介绍
异步任务jobId返回后，若jobId业务层丢失无法通过接口重新获取，现在提供一个新的接口用于查询engine中保存的所有异步任务，返回每个任务的jobId、job状态、原始请求。
#### URI
GET /ges/v1.0/{project_id}/graphs/{graph_name}/jobs/status?limit={limit}\&offset={offset}
表1路径参数 
| 参数         | 是否必选 | 类型      | 说明                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| project_id | 是    | String  | **参数解释：** 项目编号。获取方法，请参见[获取项目ID](https://support.huaweicloud.com/api-ges/ges_03_0111.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母和数字组成，且长度为\[1-64\]个字符。 **默认取值：** 不涉及。 |
| offset     | 否    | Integer | **参数解释：** 本次查询偏移量。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 默认为0。                                                                                                     |
| limit      | 否    | Integer | **参数解释：** 本次查询返回最大数量。 **约束限制：** 不涉及。 **取值范围：** 最大100000。 **默认取值：** 100000。                                                                                         |
   
#### 请求参数
详见路径参数。
#### 响应参数
表2响应Body参数说明 
| **参数**       | **类型** | **说明**                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| errorMessage | String | **参数解释**： 系统提示信息。 - 执行成功时，字段可能为空。  - 执行失败时，用于显示错误信息。   **取值范围**： 不涉及。     |
| errorCode    | String | **参数解释**： 系统提示信息。 - 执行成功时，字段可能为空。  - 执行失败时，用于显示错误码。   **取值范围**： 不涉及。 |
| result       | String | **参数解释**： 查询成功时值为success，失败时不存在该参数。 **取值范围**： 不涉及。                                                                                                                                                                                 |
| jobs         | Object | **参数解释**： 查询成功时包含jobs字段，jobs字段中包含系统中保存的job状态列表，单个job的状态结构如[表3]。 **取值范围**： 不涉及。                                                                                                                     |
   
 表3jobs状态结构 
| **参数**     | **类型**  | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| jobId      | String  | **参数解释**： Job名称。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| rawRequest | String  | **参数解释**： 原始请求Body体。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| taskType   | String  | **参数解释**： 任务类型。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| canStop    | Boolean | **参数解释**： 任务能否被停止。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| progress   | String  | **参数解释**： 任务进度。 **取值范围**： \[0,100\]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| startTime  | String  | **参数解释**： 起始时间，Date型字符串或时间戳。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| endTime    | String  | **参数解释**： 终止时间，Date型字符串或时间戳。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| status     | String  | **参数解释**： 查询成功时返回任务状态，查询失败时字段为空。 **取值范围**： 包括以下四种状态： - pending：等待中。  - running：运行中。  - success：成功。  - partiallyFailed：部分成功。  - failed：失败。   |
| failReason | String  | **参数解释**： 失败原因。 **取值范围**： 当status为failed时才有。                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| files      | Object  | **参数解释**： 导入文件列表。 **取值范围**： 当taskType为ImportGraph时才有。                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
#### 请求示例
查询job列表， 返回每个任务的jobId、job状态。
```
GET /ges/v1.0/{project_id}/graphs/movie/jobs/status?limit=2&offset=0
```
#### 响应示例
**状态码： 200**
成功响应示例
```
{
    "jobs": [
        {
            "jobId": "b236a002-6acb-40cd-acca-bc3eb96b807d001680206",
            "rawRequest": "{\"algorithmName\":\"shortest_path\",\"parameters\":{\"source\":\"0000\",\"target\":\"38\"}}",
            "taskType": "Algorithm",
            "canStop": false,
            "progress": "100",
            "startTime": "2024-05-23 09:54:00",
            "failReason": "Running algorithm [shortest_path] error: parameter [source] is invalid!",
            "endTime": "2024-05-23 09:54:00",
            "status": "failed"
        },
        {
            "jobId": "5a39d9f6-e955-4294-8ec6-2fe18eee98c7001680206",
            "rawRequest": "{\"algorithmName\":\"shortest_path\",\"parameters\":{\"source\":\"46\",\"target\":\"38\"}}",
            "taskType": "Algorithm",
            "canStop": false,
            "progress": "100",
            "startTime": "2024-05-23 09:41:40",
            "endTime": "2024-05-23 09:41:40",
            "status": "success"
        },
        {
            "jobId": "cef6ae30-f21b-4a2a-a83c-cf91bee679d9001680206",
            "rawRequest": "",
            "taskType": "ImportGraph",
            "canStop": false,
            "progress": "100",
            "files": [
                {
                    "edgeFiles": [
                        {
                            "fileName": "/root/ges-install/auDatas/ranking_edge.csv",
                            "totalLines": 1659,
                            "startTime": 1716428001745772,
                            "successfulLines": 1659,
                            "endTime": 1716428001757920,
                            "status": "success",
                            "failedLines": 0
                        }
                    ]
                },
                {
                    "vertexFiles": [
                        {
                            "fileName": "/root/ges-install/auDatas/movies_vertex_new.csv",
                            "totalLines": 146,
                            "startTime": 1716428001656072,
                            "successfulLines": 146,
                            "endTime": 1716428001659352,
                            "status": "success",
                            "failedLines": 0
                        }
                    ]
                },
                {
                    "schemaFiles": [
                        {
                            "totalLabels": 49,
                            "fileName": "/root/ges-install/auDatas/schema.xml.bak",
                            "failedLabels": 0,
                            "startTime": 1716428001563921,
                            "successfulLabels": 49,
                            "endTime": 1716428001655884,
                            "status": "success"
                        }
                    ]
                }
            ],
            "startTime": "2024-05-23 09:33:21",
            "endTime": "2024-05-23 09:33:21",
            "status": "success"
        }
    ],
    "jobCount": 3
}
```
**状态码： 400**
失败响应示例
```
Http Status Code: 400 
{
    "errorMessage": "Not found. Please check the input parameters.",
    "errorCode": "GES.8000"
}
```
#### 状态码
| 返回值                       | 说明      |
|:---|:---|
| 400 Bad Request           | 请求错误。   |
| 401 Unauthorized          | 鉴权失败。   |
| 403 Forbidden             | 没有操作权限。 |
| 404 Not Found             | 找不到资源。  |
| 500 Internal Server Error | 服务内部错误。 |
| 503 Service Unavailable   | 服务不可用。  |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-ges/ges_03_0110.html)。
