用途:针对 HubSpot API 响应慢的问题,提供批量处理、缓存、搜索优化和请求最小化等性能优化方法。
前置条件:已安装 @hubspot/api-client;了解自身访问模式(读多还是写多);可选使用 Redis 做分布式缓存。
主要能力与用法:
- 批量 API:把逐条调用合并为批量读取(如 contacts batchApi.read),可将 API 调用减少至多 100 倍;超过 100 条记录时分块处理。
- 仅请求所需属性:调用 getById 时显式传入属性列表,避免返回全部默认属性,减小负载。
- 缓存常用数据:示例使用 lru-cache,设置 max 条目与 ttl,并在 webhook 事件时失效缓存。
- 优化搜索:doSearch 需设置具体 filterGroups、最小化 properties、使用排序;限制为最多 5 个 filterGroups、每组 6 个过滤器、共 18 个过滤器,搜索最多返回 10000 条结果。
- 管道与属性缓存:管道阶段和自定义属性很少变化,可较长时间缓存(示例 1 小时)。
- 分页流式处理:用异步生成器配合 getPage 逐页处理大数据集,降低内存压力。
输出:批量操作减少调用、按属性请求减小负载、LRU 缓存、优化搜索、流式分页。
限制与错误处理:批量可能返回 207 Multi-Status,需检查各条状态;缓存 TTL 过长会产生陈旧数据,应结合 webhook 失效;搜索超过 10000 条需改用 getPage 分页;缓存过多会导致内存压力,需设置 LRU max 条目。