0

ここに私の環境があります:

  1. Mac OS X: 10.7.5
  2. Node.JS: v0.8.14
  3. Mongodb: v2.0.6 + node-mongodb-native ドライバー
  4. レディス: 2.6.3
  5. 言語: コーヒースクリプト

ここに問題があります: インデックス ページが読み込まれると、2 つの ajax リクエストが送信されます。

var xhr1 = $.ajax({
    url: '/a',
    'dataType': 'json'
    'success': function(){}
);
xhr1.done(function(){...})
var xhr2 = $.ajax({
    url: '/b',
    'dataType': 'json'
    'success': function(){}
);
xhr2.done(function(){...})

両方とも、次のように Mongodb にクエリを実行します。

app.get('/a', functionA);
app.get('/b', functionB);


functionA = function() {
    var collectionA = new mongodb.Collection(client, 'a');
    collectionA.find().toArray(function(err, arrayA){
        var collectionB = new mongodb.Collection(client, 'b');
        collectionB.find().toArray(function(err, ArrayB) {
        });
    });
}
functionA = function() {
    var collectionB = new mongodb.Collection(client, 'b');
    collectionB.find().toArray(function(err, arrayB){
    });
}

2 つのリクエストの collectionB は同じコレクションです

毎回、1 つの要求 (1 番目または 2 番目) が中断され、応答もエラーもありませんでした。ログから、リクエストが find() メソッドでスタックしていることがわかります。配線されているのは、約2分後、ページが同じリクエストを再度送信し(JQueryがそれを行ったと思います)、応答を取得したことです。

これら 2 つのリクエストでは、redis リクエストはありません。

それはmongodbだからですか?同時問題?

4

0 に答える 0