我有一个代码可以更新特定帖子的观看次数。
我是这样做的:
models.Blog.findById(id).then(blog => {
models.Blog.update({views: blog.views+1}, {where: {id: blog.id}}).then(blog => {
//result
})
})
但是,如果两个用户尝试一次更新该模型,那么就会出现竞争状况。
我的问题是如何做同样的事情并避免种族状况。
答案 0 :(得分:1)
相反,请尝试以下方法:
models.Blog.update({ views: Sequelize.literal('views + 2') }, { where: { id: blog.id }}));
这将解决您的比赛条件。
更多信息: Do Read