node.js - 带有 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
});
解决方案
推荐阅读
- c# - 如何最小化/折叠 Outlook-addin 自定义任务窗格与文件夹窗格相同?
- ngrx-effects - Ngrx 效果中的“从不”类型上不存在属性
- c# - 如何减少 C# 程序中的内存使用量?
- sql - 编写sql查询以丢弃带有一些字符串的数字小数(25.0987)值并保留那些未四舍五入的值(25)
- python-3.x - 为什么我的 pandas 数据框没有正确转换为 pyspark 数据框的列和行?
- c# - 无法通过 WCF 将流数据从客户端发送到服务器
- download - 从 JS 生成的链接下载 PDF
- ios - 安装 pod 时无法找到规范
- database - 压缩几列相同数据的最佳方法?
- python - Windows 找不到本地堆栈