【发布时间】:2019-02-19 00:46:52
【问题描述】:
我正在使用Hapijs 和mongoose,问题是一些URL 对mongoose 非常密集。
A, B, C 是 3 种不同的模式。此查询可能需要一些时间,具体取决于 array 的大小。问题是当mongoose 处理这个请求时,它不能处理另一个请求。例如,如果有人正在执行导入,则其他人都无法登录或其他任何人都无法登录系统。
我尝试了猫鼬poolSize的选项,但这不起作用。
任何ideas 我该如何克服这个问题?
buildArticle: function(articles, req, res) {
let bulkUpdateOps = articles.map(function(article) {
return A.findOneAndUpdate(
query
)
.then(function() {
return B.findOneAndUpdate(
query
);
})
.then(function(resultado) {
some stuff
})
.then(function(resultado) {
return {
updateOne: {
filter: {
query
},
update: {
data
},
upsert: true
}
};
})
.catch(function(err) {
console.log(err);
return res(Boom.badImplementation("Error: ", err));
});
});
Promise.all(bulkUpdateOps)
.then(function(ops) {
return C.bulkWrite(ops, {
ordered: true,
w: 1
});
})
.then(_ => {
return res("Imported");
})
.catch(function(err) {
console.log(err);
return res(Boom.badImplementation("Error: ", err));
});
【问题讨论】: