用途:让 Alpaca API 客户端在限流与偶发故障下保持稳定,适用于批量任务、数据回填与对账扫描等高频调用场景。这些模式属于传输层,与编程语言无关。
主要能力:
- 限流响应头:每次响应都解析 X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset。剩余量低于阈值(如 ≤50)时预警或降速;遇 429 时按 Reset 时间精确等待。限额因端点和套餐而异,不要硬编码。
- 重试循环:429 等待至 X-RateLimit-Reset 加约 1 秒缓冲;网络错误与 5xx 使用指数退避(base * 2^(attempt-1)),可加抖动;400/403/422 等不可重试的 4xx 直接抛出。
- 有界并发:使用固定工作池而非无限并发,建议从 5–8 并发起步并按响应头调整;同一批次内缓存重复读取;必要时用固定小睡眠(如 100ms)限流。
- 分页循环:列表端点需按令牌翻页。Activities 通过 X-Next-Page-Token 响应头翻页,page_size ≤100;行情 bars 通过响应体 next_page_token 传回 page_token,注意 limit 跨全部标的计数且按标的再按时间排序。每页请求都包在重试循环中。
- 超时与批量:每次调用设置 HTTP 超时(如 15–30 秒),SSE 流除外;复用共享 HTTP 客户端;写库时按块插入(如每语句 500 行)。
使用方式:先阅读 alpaca-broker-integration;按上述伪代码实现重试与分页;批量任务参考容错清单,包括解析响应头、429 等待、指数退避、有界工作池、分页至令牌为空、超时与共享客户端、分块幂等写入、带 trace ID 的结构化日志。
限制:具体限额数值、套餐差异与端点细节资料未提供,需以实际响应头为准;重试次数与并发数需按场景调优,面向用户的调用应减少尝试次数。相关技能:对账幂等、行情分页。