2

面倒なドライバーを使用して、MSSQLSELECTクエリから入力を受け取ります。

リーダーの「行」イベントにリスナーをアタッチしました。

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

insert_row_other_db関数で結果を別のデータベースに書き込んでいます。

しかし、行は書き込むよりもはるかに速く到着するので、1つの接続のみを開きたいと思います。de-asyncronyze他のデータベースへの書き込みの良い方法は何ですか?行を次々と書きたいと思います。

4

1 に答える 1

2

insert_row_other_db完了時にコールバックを受信できると仮定すると、非同期ライブラリを使用して、挿入のスケジュールに使用できるキューを作成できます。キューには同時実行設定があり、一度に実行できるタスクの数を制限できます。

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 に答える