2017-05-12 164 views
0

我有一個獨立的node.js應用程序,它使用Mongoose以異步方式執行大量(10k +)Mongo查詢。Mongoose(JS)和大量的異步請求

查詢創建時間很短 - 這是否意味着Mongoose確實發送了所有的例如。 10k同時查詢數據庫?

我讀到Mongoose默認使用5個連接 - 這是否限制並行請求的數量爲5或者可以通過每個連接同時查詢多個異步請求嗎?

如果可以同時執行多個請求 - 如何限制我的應用程序,使其不會重載Mongo數據庫?

回答

2

不,這不會將其限制爲5.您需要某些東西來控制異步流程,例如異步庫。你不提供任何代碼,所以我不知道究竟使用哪一個,但這些應該適合你的需要:

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

或處理一個個

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

謝謝您幫幫我。我沒有包含代碼,因爲我想了解的現有程序非常龐大而且複雜。它使用'async.eachSeries()',但是在處理時會爲每個元素生成一個Promise,最終創建另一個執行數據庫操作的Promise。如果我正確理解Promise的概念,則會導致大量的異步併發數據庫操作。 – JMax