2

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

我已将一个侦听器附加到阅读器的“行”事件:

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

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

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

4

1 回答 1

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);
});
于 2012-06-01T22:47:34.300 回答