Appearance
任务状态查询
接口概述
根据任务 ID 查询异步任务的当前执行状态、创建时间、结束时间和执行日志。
推荐每隔 3 至 5 秒查询一次。任务状态变为
SUCCESS或FAILED后应停止轮询,避免产生不必要的请求。
请求地址
http
GET /result/taskStatusData请求头
| 参数 | 必填 | 说明 |
|---|---|---|
| apiKey | 是 | API 访问凭证,值为 YOUR_API_KEY |
查询参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| taskId | String | 是 | 创建异步任务时返回的任务唯一标识 |
请求示例
bash
curl -G "https://openapi.bangtu-ai.com/openApi/result/taskStatusData" \
-H "apiKey: YOUR_API_KEY" \
--data-urlencode "taskId=1900123456789012345"执行中响应示例
json
{
"code": 200,
"message": "success",
"data": {
"taskId": "1900123456789012345",
"status": "RUNNING",
"type": "PRE",
"createTime": "2026-07-20T15:48:00.000+08:00",
"endTime": null,
"logs": [
{
"message": "图元解析完成",
"time": "2026-07-20 15:48:03"
},
{
"message": "检测框、图签位置...",
"time": "2026-07-20 15:48:04"
}
]
},
"timestamp": 1784533685000
}执行成功响应示例
json
{
"code": 200,
"message": "success",
"data": {
"taskId": "1900123456789012345",
"status": "SUCCESS",
"type": "PRE",
"createTime": "2026-07-20T15:48:00.000+08:00",
"endTime": "2026-07-20T15:48:25.000+08:00",
"logs": [
{
"message": "识别图签信息完成,识别图框基本信息任务结束",
"time": "2026-07-20 15:48:25"
}
]
},
"timestamp": 1784533705000
}返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| code | Number | 通用响应码,200 表示成功,500 表示失败 |
| message | String | 响应信息 |
| data | Object | null | 任务状态信息;请求失败或未查询到任务时可能为 null |
| timestamp | Number | 服务端响应时间戳,单位为毫秒 |
响应码
| code | 说明 |
|---|---|
| 200 | 请求成功 |
| 500 | 请求失败 |
data 字段
| 字段 | 类型 | 说明 |
|---|---|---|
| taskId | String | 任务唯一标识 |
| status | String | 当前任务状态:RUNNING、SUCCESS 或 FAILED |
| type | String | 任务类型;图纸基本信息识别任务为 PRE |
| createTime | String | 任务创建时间 |
| endTime | String | null | 任务结束时间;执行中为 null |
| logs | Array | 任务执行日志列表 |
logs 字段
| 字段 | 类型 | 说明 |
|---|---|---|
| message | String | 日志消息内容 |
| time | String | 日志记录时间,格式为 yyyy-MM-dd HH:mm:ss |
任务状态
| 状态 | 是否继续轮询 | 说明 |
|---|---|---|
| RUNNING | 是 | 任务正在执行,建议等待 3 至 5 秒后再次查询 |
| SUCCESS | 否 | 任务执行成功,可以继续获取识别结果 |
| FAILED | 否 | 任务执行失败,可通过 logs 查看执行信息 |
轮询示例
javascript
async function waitForTask(taskId, token) {
while (true) {
const response = await fetch(
`/result/taskStatusData?taskId=${encodeURIComponent(taskId)}`,
{
headers: {
apiKey: token
}
}
)
const result = await response.json()
const task = result.data
if (!task) {
throw new Error('未查询到任务')
}
if (task.status === 'SUCCESS') {
return task
}
if (task.status === 'FAILED') {
throw new Error('任务执行失败')
}
await new Promise(resolve => setTimeout(resolve, 3000))
}
}注意事项
taskId应使用任务创建接口返回的原始值,不要转换为数字,避免长整型精度丢失。- 推荐轮询间隔为 3 至 5 秒,请勿进行高频请求。
- 只有
RUNNING状态需要继续轮询。 - 查询到
SUCCESS或FAILED后应立即停止轮询。 code表示本次状态查询请求是否成功,任务是否执行成功应以data.status为准。