我们正在Firebase Functions上运行Node后端,并且不得不频繁访问第三方API(HubSpot),该API的速率限制为100个请求/ 10秒。
我们正在从我们的云功能向HubSpot发出这些请求,并且经常发现自己在广告系列或其他网站使用量激增期间超出了HubSpot的速率限制。同样,由于它们都是对HubSpot上的数据进行更新的写请求,因此这些请求不能乱序进行。
有没有办法限制我们对HubSpot的请求,以不超出其速率限制?对可能不一定涉及云功能的建议持开放态度,尽管这是首选。
注意:当我说“油门”时,是指对HubSpot的所有请求都必须经过。如果可以的话,我正在尝试实现与Lodash's throttle方法相似的方法。
最佳答案
在这种情况下,我们通常要做的是将数据存储到数据库中,然后使用每分钟运行一次的cron以一种经过调节的方式(例如,不超过其速率限制)将其传递给HubSpot。对于成功传递给HubSpot的每个数据项,我们在数据库中将其标记为“成功”。