我有一个代码可以更新特定帖子的查看次数。
我是这样做的:
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 }}));
这将解决您的竞争条件。
更多信息: Do Read
关于node.js - 使用 Nodejs Sequelize 避免竞争条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51660205/