时间:2019-04-29 来源:小程序工厂
你好,云开发数据库暂时并不提供显式的事务和锁,但是对于单条数据的操作仍然能保证原子性。
对于你的需求,推荐临时这样处理:
数据库中建一个活动,并加一个 goodsLeft 字段(number 类型),表示剩余多少商品
通过这样的代码执行抢购: db.collection('activity').where({
activity_id: _.eq("test1"),
goodsLeft: _.gt(0)
}).update({
data: {
goodsLeft: _.inc(-1) //每次把剩余商品数减一
}
}).then(function(d){
if(d.stats.updated>0) { /*抢购成功*/ }
else { /*抢购失败*/ }
})
没有锁的
数据可能重复
云开发处理秒杀还是算了吧,以现有的云开发能力也就做做增删改查的事情