ここに私の環境があります:
- Mac OS X: 10.7.5
- Node.JS: v0.8.14
- Mongodb: v2.0.6 + node-mongodb-native ドライバー
- レディス: 2.6.3
- 言語: コーヒースクリプト
ここに問題があります: インデックス ページが読み込まれると、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だからですか?同時問題?