这是我的环境:
这是事情: 加载索引页面时,将发送两个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){
});
}
两个请求中的collectionB是同一个集合
每次,一个请求(第一个或第二个)被暂停,没有响应,没有错误。从日志中,我可以看到请求被卡在find()方法中。什么是有线的是大约两分钟后,页面再次发送相同的请求(我猜JQuery做了那个),然后得到了响应。
在这两个请求中,没有redis请求。
是因为mongodb?并发问题?