如果我们的数据库中修改了某些特定数据,我们的 API 需要将数据发送到 Zapier。
例如,我们有一个公司表,如果名称或地址字段被修改,我们会触发 Zapier 钩子。
有时我们的 API 会在几分钟内收到多个更改请求,但我们不想多次触发 Zapier 钩子(因为它非常昂贵),所以我们在每个修改请求上调用一个setTimeout()
(并覆盖现有的),用一个延迟。setTimeout
5000ms
它工作正常,即使我们在此5000ms
期间收到来自客户端的大量修改请求,也没有多次 Zapier 挂钩调用。
现在 - 由于我们的流量正在增长 - 我们想在一些负载均衡器后面设置多个 node.js 实例。
但是在这种情况下,不同的 Node.js 实例不能使用 - 并覆盖 - 同一个setTimeout
实例,这会导致很多无用的 Zapier 调用。
你们能否帮助我们,如何解决这个问题 - 同时保持可扩展性?