SuperAPI AI 工具集

klaviyo-rate-limits

编程与开发

查看项目

更新于 10-15 23:26

技能介绍

用途:处理 Klaviyo 按账号的固定窗口限流,应对 429 错误、实现重试逻辑并优化 API 请求吞吐。

主要能力:生成一组可组合的辅助文件。rate-limiter.ts 提供 withRateLimitRetry,仅在 429 与 5xx 时重试,429 时始终遵循 Retry-After,5xx 时使用带抖动的指数退避;queue.ts 提供基于 p-queue 的请求队列,上限 60 req/s,为 75 req/s 突发上限留出余量;monitor.ts 读取 RateLimit-* 响应头,按账号真实剩余额度做节流;bulkProfileSync 分批导入并按批间隔,避免触发每分钟 700 次的稳态上限。

限流架构:Klaviyo 同时应用两个窗口——突发 1 秒 75 次、稳态 1 分钟 700 次,任一超限即返回 429。成功响应含 RateLimit-Limit、RateLimit-Remaining、RateLimit-Reset;429 响应不返回这些头,只返回 Retry-After(整数秒)。

使用方式:需先安装依赖 npm install klaviyo-api 与 npm install p-queue,并对项目 src/klaviyo/ 目录有写权限。最小用法是用 withRateLimitRetry 包裹单次调用,例如:const profile = await withRateLimitRetry(() => profilesApi.getProfile('01H...'));。队列、监控与批量同步的完整源码见 references/implementation.md,端到端示例见 references/examples.md。

适用场景:单次限流安全调用、高并发写入、十万级 profile 导入,以及依据实时响应头做主动节流。

限制:资料未提供具体价格、平台支持范围或性能保证;错误处理建议包括突发超限等待 Retry-After、稳态超限降低并发、恢复后加随机抖动避免惊群、Retry-After 持续增长时减少请求量并排查失控循环。