主题
获取 Google店信息已完成任务列表
GET /v3/business_data/google/hotel_info/tasks_ready
本接口使用 GET 方法,请求路径为:
GET https://api.seermartech.cn/v3/business_data/google/hotel_info/tasks_ready
用于获取 Google店信息任务中已完成但尚未领取结果的任务列表。获取任务 ID 后,可继续调用对应的任务结果接口获取详细数据。
如果创建任务时了 postback_url,已成功推送的任务不会出现在本列表中。当推送请求失败,且接收服务器返回的 HTTP 状态码小于 200 或大于 300 时,任务才会重新出现在列表中。
> 注意:已完成任务队列可能存在短暂延迟。对于每分钟需要领取 1000 个任务的高并发场景,建议优使用回调通知机制,并将本接口作为失败回调任务的补偿查询接口。
请求路径
按指定搜索引擎获取已完成任务:
http
GET https://api.seermartech.cn/v3/business_data/{se}/tasks_ready获取 Business Data API 下所有已完成任务:
http
GET https://api.seermartech.cn/v3/business_data/tasks_ready{se} 为搜索引擎名称,例如 google。
计费与限制
- 获取已完成任务列表不收取费用。
- 每个任务在被成功领取前都会保留在列表中。
- 每分钟最多调用 20 次。
- 每次调用最多返回 1000 个任务。
- 返回最近 3 天完成且尚未领取的任务。
- 已领取的任务不会再次出现在列表中。 -过完成时间 3 天仍未领取的任务将从列表中移除。
- 本接口不支持请求体。
- 实扣费及费用信息以响应头
X-SeerMarTech-Charge-CNY为准;本接口正常费用为 0。
请求参数
本接口无请求参数。
响应字段
接口返回 JSON 对象 tasks 为已完成任务列表。
顶层字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 请求级状态码,完整错误码请参考 /v3/appendix/errors |
status_message | string | 请求级说明信息 |
time | string | 请求处理耗时,单位为秒 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | tasks 数组中返回错误的任务数量 |
tasks | array | 已完成任务列表 |
tasks 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式 |
status_code | integer | 任务状态码,通常在 10000–60000 范围 |
status_message | string | 任务状态说明 |
time | string | 任务处理耗时,单位为秒 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量 |
path | array | 任务结果接口路径 |
data | object | 创建任务时传的请求参数 |
result | array | 已完成任务信息 |
tasks.result 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 已完成任务的唯一标识,UUID 格式 |
se | string | 创建任务时指定的搜索引擎,当前为 google |
se_type | string | 搜索类型,当前为 hotel_info |
date_posted | string | 任务提交时间,UTC 格式 |
tag | string | 用户自定义任务标识 |
endpoint | string | 获取该任务详细结果的接口地址 |
请求示例
cURL
bash
curl --location --request GET \
"https://api.seermartech.cn/v3/business_data/google/hotel_info/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/google/hotel_info/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:
# 处理已完成任务列表
for task in data.get("tasks", []):
print(task)
else:
print(
"请求失败,状态码:{},消息:{}".format(
data.get("status_code"),
data.get("status_message"),
)
)TypeScript
typescript
import axios from "axios";
async function getHotelInfoTasksReady() {
try {
const response = await axios.get(
"https://api.seermartech.cn/v3/business_data/google/hotel_info/tasks_ready",
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
);
const data = response.data;
if (data.status_code === 20000) {
// 处理已完成任务列表
console.log(data.tasks);
} else {
console.error(
`请求失败,状态码:${data.status_code},消息:${data.status_message}`
);
}
} catch (error) {
console.error("网络请求失败:", error);
}
}
getHotelInfoTasksReady();响应示例
json
{
"version": "0.1.20210519",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.2094 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "00000000-0000-0000-0000-000000000000",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1021 sec.",
"cost": 0,
"result_count": 1,
"path": [
"v3",
"business_data",
"google",
"hotel_info",
"task_get"
],
"data": {
"se_type": "hotel_info",
"se": "google",
"api": "business_data",
"function": "hotel_info"
},
"result": [
{
"id": "00000000-0000-0000-0000-000000000000",
"se": "google",
"se_type": "hotel_info",
"date_posted": "2024-01-01 12:00:00 +00:00",
"tag": "hotel_task_001",
"endpoint": "/v3/business_data/google/hotel_info/task_get"
}
]
}
]
}状态码与异常处理
status_code = 20000:请求成功。- 状态码表示请求或任务处理异常。
- 建议客户端同时检查顶层
status_code、tasks_error以及每个任务对象中的status_code。 - 完整状态码和说明请参考
/v3/appendix/errors。 - 对于暂时未出现在列表中的任务,应结合队列延迟、回调失败记录和任务提交时间进行重试处理。
实用场景
- 轮询已完成信息任务:定时获取已完成任务 ID,批量拉取,逐个查询任务状态。
- 补偿失败的回调任务:筛选未成功推送到业务服务器的任务,重新获取结果,降低数据丢失风险。
- 构建异步采集流程:将任务提交、完成任务领取和结果库拆分处理,提高数据采集系统的吞吐量。
- 同步多地区数据:按搜索引擎和任务标签区分采集批次,便于对不同国家、城市或集合进行结果归档。
- 监控任务处理进度:统计
tasks_count、tasks_error和任务时间字段,及时发现数据采集延迟或异常。