Promise.all在批量网络调用内存不足

时间:2018-05-31 06:20:29

标签: javascript arrays promise

我试图找到一种向API运行一系列批量网络请求的有效方法。 API获取一系列ID,并为所提供的每个ID返回一个JSON Document(如果在数据库中可用)。对于少量ID,如10或25,操作非常快。但是,我有25,000多个(并且正在增长)ID需要通过初始调用进行。

我首先尝试通过数组中的~5000个ID来阻塞这些请求,然后使用WITH等待所有请求返回,然后再将数据合并回来。它将检索所有文档的时间从2分钟减少到15秒(幸运的是,这是负载平衡的)。这开始很好,但我知道随着应用程序的增长,将会有更多的文档。我试图将我开始批处理的大小降低到1000的大小,但是它达到了堆栈和堆的限制。

有没有更有效的方法让我在JavaScript中解决这个问题?最终,这个应用程序可以在一周内轻松地将所需文档从25K增加到50K,而目前无法选择像Redis这样的缓存层。

以下是我的批处理请求的伪代码:

Promise.all

0 个答案:

没有答案