【问题标题】:Mongoose (JS) and high number of async requestsMongoose (JS) 和大量异步请求
【发布时间】:2017-10-11 12:24:52
【问题描述】:

我有一个独立的 node.js 应用程序,它使用 Mongoose 以异步方式执行大量 (10k+) 次 Mongo 查询。

创建查询的时间很短 - 这是否意味着 Mongoose 确实发送了所有例如。同时对数据库进行 10k 次查询?

我读到 Mongoose 默认使用 5 个连接 - 这是否将并行请求的数量限制为 5 个,或者 Mongoose 可以通过每个连接同时查询多个异步请求?

如果可以同时执行多个请求 - 如何限制我的应用程序以使其不会使 Mongo 数据库过载?

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    不,这并不限制它为 5。您需要一些东西来控制异步流,例如异步库。您没有提供任何代码,所以我不确定要使用哪一个,但其中一个应该适合您的需要:

    // pass limit = 5
    async.eachLimit()  
    async.everyLimit() 
    

    或一一处理

    async.eachSeries() // kind of like sync forEach
    async. whilst()    // kind of like while loop
    

    【讨论】:

    • 感谢您的帮助。我没有包含代码,因为我试图理解的现有程序既庞大又复杂。它使用async.eachSeries(),但是在处理时它为每个元素生成一个 Promise,最终创建另一个执行 DB 操作的 Promise。如果我正确理解 Promise 的概念,这最终会导致大量异步并发 DB 操作。
    猜你喜欢
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    • 2018-04-26
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多