[英]Concurrent control for NodeJS and MongoDB stack
我有用户提交的这些“任务”,这些命中了我的NodeJS服务器,并作为文档存储在MongoDB数据库中。 然后,用户还可以提取这些任务并一次完成一项任务。
我的问题是,当两个用户同时要求执行一项任务时,由于竞争状况,他们可能会获得相同的任务。 当第一个查询尝试将任务的状态更新为“正在工作”时,第二个查询也可以获取该状态。 有人可以建议我如何使用NodeJS和MongoDB解决所有异步的问题吗? 也欢迎任何框架或库。
MongoDB正是有一个为此目的的findAndModify
方法。
使用MongoDB驱动程序,您将运行以下代码,
collection.findAndModify({
// Query
}, [
// Sort
], {
$set: {
state: 'working'
}
}, {
new: true
}).then((task) => {
// This is your "working" task
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.