本文介绍一种健壮的断点续传机制:当遍历 json 客户列表调用 api 因 token 过期中断时,自动记录最后失败的 clientid,并在下次运行时从此处继续,避免重复请求与数据遗漏。
在实际集成场景中(如对接 DocuSign、Salesforce 等需 Bearer Token 认证的 API),Token 通常具有较短有效期(如 1 小时),而批量处理数百个客户可能耗时更长。若每次 Token 失效都从头重跑,不仅浪费资源,还可能引发幂等性问题或限流风险。因此,实现「精准断点续传」——即严格从上一次中断的 ClientId 开始继续处理——是生产级脚本的关键能力。
✅ 核心设计思路
我们不依赖内存状态(因脚本退出后状态即丢失),而是采用轻量级持久化标记:
- 使用一个纯文本文件(如 last_failed.txt)存储最近一次 Token 过期时对应的 ClientId;
- 每次启动时检查该文件是否存在:
- 若不存在 → 全量遍历;
- 若存在 → 跳过此前所有 Client,从该 ID 对应项开始迭代;
- 成功完成全部请求后,自动清理该标记文件,表示任务已闭环。
? 实现要点解析
1. 扁平化嵌套结构,统一客户端流
原始 JSON 是双层嵌套(外层数组 → ClientList 数组),直接多层 for 循环易出错且难以跳转。推荐使用生成器抽象: