2016-10-12 21 views
0

現在、複数の非同期HTTPリクエストを持つ小さなサーバーをテストしようとしていますが、sqlite3データベースは同時クエリの実行をブロックしているようです。SQLITE_BUSYNode.jsのsqliteデータベースの非同期HTTPリクエスト

db.exec(query, (err) => { 
    if (err !== null) { 
     callback('Insertion failed.'); 
    } else { 
     callback(null); 
}); 

sqlite3モジュールを使用してこの問題を回避する方法はありますか?

ありがとうございます。

+1

これは、同様の問題のようだ:http://stackoverflow.com/questions/964207/sqlite-exception-sqlite-busy – Peter

+0

私はそこから進むことができますか本当にわかりません。 – qantik

答えて

1

async.queueを使用できますか?

var async = require('async'); 

var q = async.queue(function(task, callback) { 
    db.exec(task.query, function(err) { 
     callback('Insertion failed.'); 
    }); 
    callback(); 
}, 1); 

q.drain = function() { 
    console.log('queue is empty, ready for more query'); 
}; 

q.push({query: "Your SQL INSERT query"}, function(err) { 
    console.error(err); 
}); 
+0

そうだね。ありがとうございました! – qantik

関連する問題