2012-06-01 37 views
2

我使用繁瑣的驅動程序接收來自MS SQL SELECT查詢的輸入。如何從node.js中的快速輸入中逐個寫入數據庫

我附上一個聽衆給讀者的「行」事件:

request.on('row', function(columns) { 
    insert_row_other_db(columns); 
}); 

我寫的結果,在insert_row_other_db功能的其他數據庫。

但行到達比他們可以寫得快得多,我只想打開一個連接。 de-asyncronyze寫入其他數據庫的好方法是什麼?我想一個接一個地寫行。

回答

2

假設您可以在insert_row_other_db完成時收到回調,您可以使用Async庫創建一個隊列,您可以使用這個隊列來安排插入。該隊列具有併發設置,允許您限制一次可以運行的任務數量。

var async = require("async"); 

var insertQueue = async.queue(function (columns, callback) { 
    insert_row_other_db(columns, callback); 
}, 1); 

request.on("row", function (columns) { 
    insertQueue.push(columns); 
}); 
+0

這看起來完全像我所需要的。將遵循你的建議,太棒了! – SHernandez

+0

我抄襲了你的代碼1:1,它適用於我。 – SHernandez