主题
App Data 已完成任务查询
接口说明
Tasks Ready 接口用于返回已执行完成但尚未被获取结果的任务列表。
如果你使用标准提交流程,且在创建任务时没有指定 postback_url,可以通过本接口获取所有已完成任务的 id,再结合对应的 Task GET 结果接口逐个拉取任务结果。
如果你的系统需要了解任务完成机制及已完成任务获取方式,可参考说明文档。
注意: 由于平台 API 的任务队列更新存在短暂延迟,高并发场景下可能会影响实时拉取。 如果你的系统需要每分钟采集 1000 个任务,建议优使用 pingback/postback 回调机制,而将
Tasks Ready用于补偿获取回调失败任务的 ID。
请求地址
获取 WordPress V2 已完成任务
http
GET https://api.seermartech.cn/v3/app_data/wp/v2/tasks_ready按指定搜索引擎获取已完成任务
将 $se 替换为对应搜索引擎名称:
http
GET https://api.seermartech.cn/v3/app_data/$se/tasks_ready获取 App Data部已完成任务
http
GET https://api.seermartech.cn/v3/app_data/tasks_ready计费说明
获取已完成任务列表不额外收费。
接口响应中的 cost 通常为 0,扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
使用限制
- 最多每分钟调用 20 次
- 单次调用最多返回:
- 近 3 天完成的 1000 个任务
- 任务会一直保留在列表中,直到你成功拉取该任务结果
- 下列任务不会出现在列表中:
- 已经被成功获取结果的任务
- 完成后 3 天未被拉取 的任务
postback_url 的特殊说明
如果创建任务时指定了 postback_url,该任务通常不会出现在已完成任务列表中。
只有在回调请求发送到你的服务器失败时,该任务才可能出现在列表里,例如:
- 你的服务器请求处理失败
- 你的服务器返回的 HTTP 状态码 小于
200或 大于300
响应结构
接口返回 JSON 数据,顶层 tasks 数组每个任务项对应的完成任务信息。
顶层字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用状态码;完整列表见 /v3/appendix/errors |
status_message | string | 通用状态信息;完整列表见 /v3/appendix/errors |
time | string | 接口执行耗时,单位秒 |
cost | float | 本次请求总成本,单位 USD |
tasks_count | integer | tasks 数组中的任务数 |
tasks_error | integer | tasks 数组中返回错误的任务数 |
tasks | array | 任务数组 |
建议在接时完善异常处理和错误状态处理逻辑。
tasks 数组字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 本平台任务 ID,UUID 格式 |
status_code | integer | 任务状态码,范围通常为 10000-60000;完整列表见 /v3/appendix/errors |
status_message | string | 任务状态说明 |
time | string | 任务处理耗时,单位秒 |
cost | float | 该任务成本,单位 USD |
result_count | integer | result 数组中的数量 |
path | array | URL 路径 |
data | object | 请求 URL 中传的参数 |
result | array | 结果数组 |
result 数组字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 已完成任务的任务 ID,UUID 格式 |
se | string | 创建任务时指定的搜索引擎 |
se_type | string | 搜索引擎类型 |
function | string | 任务类型 |
date_posted | string | 任务提交时间,UTC 格式 |
tag | string | 用户自定义任务标识 |
endpoint_advanced | string | 获取该 Wp V2 任务结果的高级结果接口地址 |
endpoint_html | string | 获取该 Wp V2 HTML 结果的接口地址;若该端点不支持 HTML 结果,则为 null |
请求示例
cURL
bash
curl --location --request GET "https://api.seermartech.cn/v3/app_data/wp/v2/tasks_ready" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"Python
python
import requests
url = "https://api.seermartech.cn/v3/app_data/wp/v2/tasks_ready"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
# 获取已完成但尚未拉取的任务列表
response = requests.get(url, headers=headers)
data = response.json
if data.get("status_code") == 20000:
print(data)
else:
print(f'error. Code: {data.get("status_code")} Message: {data.get("status_message")}')TypeScript
typescript
import axios from "axios";
async function getReadyTasks {
const response = await axios.get(
"https://api.seermartech.cn/v3/app_data/wp/v2/tasks_ready",
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
);
const result = response.data;
if (result.status_code === 20000) {
// 处理返回结果
console.log(result);
} else {
console.log(`error. Code: ${result.status_code} Message: ${result.status_message}`);
}
}
getReadyTasks.catch(console.error);响应示例
json
{
"version": "0.1.20220422",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1098 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"data": {
"se_type": "v2",
"se": "wp",
"api": "app_data",
"function": "v2"
},
"result": []
}
]
}说明: 原始示例响应存在格式截断,这里按原始结构含义进行了整理。返回中,
tasks数组下通常会完整的任务信息与result数组。
状态码与错误处理
- 顶层
status_code表示整个请求是否成功 tasks[].status_code表示单个任务的处理状态- 建议重点处理以下:
- 请求成功但
tasks为空 - 单个任务返回错误
- 结果拉取延迟导致新完成任务暂未出现在列表中
- 使用了
postback_url后任务默认不此列表
完整错误码可参考:
/v3/appendix/errors
结果获取建议流程
- 提交 App Data 任务
- 若未设置
postback_url,轮询GET /v3/app_data/tasks_ready或引擎路径 - 从返回结果中读取已完成任务
id - 调用对应的 Task GET 接口拉取详细结果
- 对已获取结果的任务做本地去重与归档
实用场景
- 轮询补任务结果:在未回调的,定时获取已完成任务 ID,确保 App 数据任务结果被稳定拉取。
- 补偿回调失败任务:当业务系统的
postback_url偶发失败时,通过本接口找回遗漏任务,数据丢失。 - 构建任务消费队列:将已完成任务列表接任务中心,统一调度后续结果抓取、库和分析流程。
- 监控任务产出时效:统计任务完成与被拉取之间的时间差,优化采集链路和结果消费效率。
- 按应用市场分流抓取:结合不同
se或路径查询各类 App Data 任务完成,便于分渠道处理数据结果。