我的流程存在一致性/并发性问题。当我在我的应用程序中创建会话(从路由执行createSession
)时,需要几个异步步骤。 Mongoose模型只会在流程的最后,在瀑布的function(err,result)
中强制执行一致性。
问题在于,如果以非常短的间隔触发2个请求,则在第2个请求的步骤1开始时,步骤2可能无法完成,并且会导致数据不一致。解决这类问题的最佳方法是什么?有没有办法让请求入队?
function createSession(req, res) {
async.waterfall([
// Step 1 in collection 1
function(callback){
...
},
// Step 2 in collection 2
function(callback){
...
},
function(err,result){
... // session is created
}