我的节点服务器在启动时执行缓存预热。数据是从外部Web服务请求的。
所有这些都是异步完成的,这意味着(当前)所有请求(大约300个)几乎立即完成(就像节点可以循环一样快),然后每个响应在到达时处理(根据我的理解)节点异步范例是。
这会导致问题,因为它会在外部Web服务上触发DDoS保护。
所以我需要限制在此阶段发送请求的频率(当服务器运行时,请求不经常这样做,而且从不快速连续发送)。
但是:我如何将这与节点“需要”的异步编程协调一致?如果我使用setTimeout
它会将请求延迟到以后的时间,但由于它是在循环中完成的,它们几乎会在同一时刻发生。
使用await
所以只有在收到前一个电话时才会触发每个电话,感觉太多限制。我可以做并行请求,只是在那么短的时间内没有那么多。
我怎样才能解决这个问题?