首页 > 解决方案 > 带有 mongodb 的 NodeJS 并发休息客户端

问题描述

我正在研究 nodeJS 作为可部署的 AWS Lambda 函数(或 AWS Batch)。我的解决方案将包括三个步骤:

1 - 从 mongodb 集合中读取元素

2 - 对于每个元素,调用第三方 api

3 - 解析 api 响应并更新关联的数据库记录

我对 nodejs 很陌生,但从我的研究来看,stream() 似乎是读取我的数据集的最高效的方式。(我可以说数据集总是低于 30k)

我的主要疑问在于调用 3rd Party API 以及如何充分利用 nodejs 的并发/异步行为。我怎样才能确保我不浪费时间?假设第 3 方 API 每秒可以处理 50 个请求。

这个片段只是我在本地玩耍的结果。从我的在线搜索中,我看到人们推荐 axios 或 node-fetch,但我希望从经验丰富的节点开发人员那里获得更多输入。

为简单起见,我省略了流中的过滤部分。

const db = await connectToDatabase();

var myCollectionStream = db.collection("mydataset").find().stream();
myCollectionStream.on("data", function (item) {
   
    //TODO: calling my third api here
});

myCollectionStream.on('close', () => {
    //TODO: send out some notification
});

标签: node.jsrestconcurrency

解决方案


推荐阅读