我有一个代码可以更新特定帖子的浏览量。
我是这样做的:
models.Blog.findById(id).then(blog => {
models.Blog.update({views: blog.views+1}, {where: {id: blog.id}}).then(blog => {
//result
})
})
但如果两个用户尝试同时更新该模型,则会出现竞争条件。
我的问题是如何做同样的事情,避免种族状况。
请尝试以下方法:
models.Blog.update({ views: Sequelize.literal('views + 2') }, { where: { id: blog.id }}));
这将解决您的种族状况。
更多信息:阅读