主题
获取 Tripadvisor Reviews 已完成任务列表
接口说明
Tasks Ready 接口用于获取已完成但尚未获取结果的任务列表。
如果你没有使用 postback_url,可以通过本接口获取所有已完成任务的 id,再使用对应的 Task GET 接口拉取详细结果。
需要注意的是,由于平台 API 的任务队列存在轻微更新延迟,高并发场景下可能出现短时间结果未立即出现在列表中的。如果你的系统需要每分钟处理 1000 个任务结果,建议优使用 pingback/postback 回调机制;Tasks Ready 更适合用于补偿获取那些回调失败的任务 ID。
请求地址
获取 Tripadvisor Reviews 已完成任务列表:
GET https://api.seermartech.cn/v3/business_data/tripadvisor/reviews/tasks_ready
此外,Business Data API 还支持以下通用形式:
- 指定搜索引擎的任务完成列表:
GET /v3/business_data/$se/tasks_ready - 获取 Business Data API部已完成任务列表:
GET /v3/business_data/tasks_ready
计费与限制
- 获取已完成任务列表不会额外收费
- 每个任务会一直保留在列表中,直到结果被成功拉取
- 每分钟最多可调用 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;本接口通常为 0,扣费以响应头 X-SeerMarTech-Charge-CNY 为准 |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | tasks 数组中返回错误的任务数量 |
tasks | array | 任务数组 |
建议在接时做好异常状态和错误码处理逻辑。
tasks[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 当前接口返回任务的唯一标识,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 | 已完成任务结果列表 |
tasks[].result[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 已完成任务的唯一标识,UUID 格式 |
se | string | 创建任务时指定的搜索引擎;此接口固定为 tripadvisor |
se_type | string | 搜索引擎类型 |
date_posted | string | 任务提交时间,UTC 格式 |
tag | string | 用户自定义任务标识 |
endpoint | string | 用于拉取该任务结果的接口地址 |
调用示例
cURL
bash
curl --location --request GET "https://api.seermartech.cn/v3/business_data/tripadvisor/reviews/tasks_ready" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"Python
python
import requests
url = "https://api.seermartech.cn/v3/business_data/tripadvisor/reviews/tasks_ready"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
result = response.json
if result.get("status_code") == 20000:
print(result)
# 在这里处理已完成任务列表
else:
print(f"error. Code: {result.get('status_code')} Message: {result.get('status_message')}")TypeScript
typescript
import axios from "axios";
async function getReadyTasks {
try {
const response = await axios({
method: "get",
url: "https://api.seermartech.cn/v3/business_data/tripadvisor/reviews/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}`);
}
} catch (error) {
console.error(error);
}
}
getReadyTasks;响应示例
json
{
"version": "0.1.20210917",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1630 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-1234567890ef",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0312 sec.",
"cost": 0,
"result_count": 1,
"path": [
"v3",
"business_data",
"tripadvisor",
"reviews",
"tasks_ready"
],
"data": {
"api": "business_data",
"function": "reviews",
"se": "tripadvisor",
"se_type": "reviews"
},
"result": [
{
"id": "f7d9c1a2-b3e4-5678-9abc-def012345678",
"se": "tripadvisor",
"se_type": "reviews",
"date_posted": "2023-10-05 12:30:14 +00:00",
"tag": "hotel_review_batch_01",
"endpoint": "/v3/business_data/tripadvisor/reviews/task_get/f7d9c1a2-b3e4-5678-9abc-def012345678"
}
]
}
]
}使用建议
- 如果你依赖轮询方式获取结果,可定时调用本接口,获取处理任务 ID
- 获取到
endpoint或任务id后,立即调用对应的Task GET接口拉取 - 若业务量较大,建议结合回调机制与本接口做失败补偿
- 处理结果时应特别
status_code、tasks_error和result_count
常见状态与错误处理
虽然原始文档未单独列出该接口的专属错误码,但你应至少处理以下:
| 场景 | 建议处理方式 |
|---|---|
status_code != 20000 | 视为接口调用失败,记录日志并重试 |
tasks_error > 0 | 遍历 tasks 中的各任务状态,识别失败任务 |
result_count = 0 | 当前暂无可拉取的已完成任务 |
| 高频轮询 | 注意遵守每分钟 20 次的调用上限 |
| 大批量结果采集 | 优使用 postback/pingback,降低轮询延迟与漏取风险 |
实用场景
- 轮询已完成评论采集任务:定时获取 Tripadvisor 评论抓取任务的完成 ID,自动结果下载流程,减少人工干预。
- 补偿回调失败任务:当业务系统未成功接收到回调时,通过本接口找回遗漏任务,评论数据缺失。
- 构建异步任务消费队列:将本接口返回的任务 ID 投递到消息队列,提升大批量评论采集任务的处理稳定性。
- 监控采集链路健康度:结合
tasks_error、任务状态码和结果数量,快速发现回调异常、任务积压或结果漏拉问题。 - 追踪批次任务执行状态:利用
tag字段业务批次,按、地区或时间段追踪评论采集完成进度。