如何从node.js中到达太快的偶数input逐个写入数据库

我使用繁琐的驱动程序接收来自MS SQL SELECT查询的input。

我已经附加了一个听众的读者“行”事件:

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

我正在将结果写入insert_row_other_db函数中的另一个数据库。

但是这些行的到达速度要比它们能够写得快得多,我只想打开一个连接。 什么是一个很好的方式去de-asyncronyze写入其他数据库? 我想一个接一个地写行。

假设您可以在insert_row_other_db完成时收到callback,则可以使用Async库创build一个队列,您可以使用这个队列来安排插入。 队列有一个并发设置,允许您限制一次可以运行的任务的数量。

 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); });