数据更新推送技术方案说明
1、整体流程
+------------------------------------------------------------------------------+
| 定时任务触发 --> 按 biz_code 读取待推送的企业 |
+------------------------------------------------------------------------------+
|
| (正常推送流程)
v
+==============================================================================+
| |
| +------------------------------------------------------------------------+ |
| | 1. 调用第三方数据接收接口 (POST) | |
| | Headers: Content-Type: application/json | |
| | Body: { bizCode, batchNo, meta, enterprises: [{pid, ...}] } | |
| +------------------------------------------------------------------------+ |
| | | |
| | (HTTP 200 OK) | (网络超时/5xx/ |
| | | 第三方发现数据空缺) |
| v v |
| +------------------------------------+ +--------------------------------+ |
| | 2. 正常流程 | | 3. 异常处理流程 (补偿机制) | |
| | - 第三方正常接收数据 | | - 触发: 第三方发现数据不完整 | |
| | - 自行判断是否需调用详情接口获取 | | - 动作: 第三方主动调用我方接口 | |
| | 详情 | | 补全缺失数据 | |
| +------------------------------------+ +--------------------------------+ |
| | |
| | (携带: pushTime, bizCode, |
| | batchNo) |
| v |
| +----------------------------------------------+ |
| | 4. 第三方调用我方获取推送数据接口 (GET) | |
| | Path: /services/v4/rest/server/fetch_... | |
| | 响应: 返回该批次的完整推送企业信息 | |
| +----------------------------------------------+ |
| | |
| v |
| +----------------------------------------------+ |
| | 5. 第三方重新获取完整数据,流程闭环 | |
| +----------------------------------------------+ |
| |
+==============================================================================+2、补偿机制详细说明
2.1、推送接口请求参数说明
我方调用第三方数据接收接口 (POST) 时,请求 Body 采用以下结构。为保证大数据量推送的稳定性与可追溯性,数据组织遵循 “业务code -> 推送轮次 -> 具体批次” 的三层结构:
{
"ruleCode": "fl-kt-fqt", // (非必需) 第三方定义的业务code码,唯一对应具体的数据更新规则
"bizCode": "101", // (必需) skb推送业务code码,用于区分不同的数据更新规则
"meta": { // (必需) 元数据信息,用于第三方校验数据完整性及补偿定位
"push_time": 1774410892, // bizCode本轮推送的时间戳,作为bizCode本轮推送的唯一标识
"total_count": 202, // bizCode本轮推送数据总量
"total_batches": 2, // bizCode本轮需要推送的总批次数量
"batch_index": 1, // bizCode本轮推送的当前批次索引,从1开始
"batch_size": 100 // bizCode当前批次预期推送的数据量
},
"enterprises": [ // (必需) 企业数据明细列表
{
"pid": "fdafdsafdsfd", // skb企业唯一id
"uncid": "914403xxxxxx", // 统一社会信用码
"regProvinceCode": "51", // 注册地址省份 code码
"regProvince": "四川", // 注册地址省份
"regCityCode": "5101", // 注册地址城市 code码
"regCity": "成都" // 注册地址城市
}
]
}
2.2、补偿机制详细说明
数据完整性校验规则:
第三方接收数据后,应优先通过meta字段校验当前批次的数据完整性。若满足以下任一条件,即视为数据不完整,需触发补偿机制:enterprises数组的实际长度不等于meta.batch_size。total_count不等于本轮所有批次的enterprises数据量总和batch_index缺失,例如已经接收到 batch_index 为 1,3,4 的,缺失 batch_index 为2的数据
补偿触发与动作:
当发现数据不完整时,第三方需主动调用我方 获取指定批次的推送数据接口 (GET),以补全缺失的该特定批次的数据。请求参数映射关系 (Query):
第三方需从上一次 POST 请求的 Body 中提取对应字段,并严格按照以下映射关系传递给我方 GET 接口:bizCode:缺失数据的业务 code(对应 POST 的bizCode)。pushTime:缺失数据所属的完整推送轮次标识(对应 POST 中的meta.push_time)。batchNo:缺失数据的具体批次序号(对应 POST 中的meta.batch_index)。
请求示例:
GET https://{host}/services/v4/rest/server/fetch_pushing_data?bizCode=101&pushTime=1774410892&batchNo=1
文档更新时间: 2026-08-19 22:09 作者:李星亮