[微信小程序]云开发能否处理秒杀或者电商中超卖的问题? [你这样说,我理解不了。]

- 需求的场景描述(希望解决的问题)

比如在秒杀的场景,怎么处理超卖的问题?

是否能给某次读写加锁,或者其他解决方案?


- 希望提供的能力

云函数读写加锁或者其他能够保证读写过程中没有其他写入操作。


  • 你好,云开发数据库暂时并不提供显式的事务和锁,但是对于单条数据的操作仍然能保证原子性。 对于你的需求,推荐临时这样处理: 数据库中建一个活动,并加一个 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 { /*抢购失败*/ }   }) , 说的貌似很有深意,你能一条一条说么?
    • 谢谢!, 应该的啦,很高兴帮到你呢。
  • 没有锁的 数据可能重复 , 我特别喜欢和你聊天呢
  • 云开发处理秒杀还是算了吧,以现有的云开发能力也就做做增删改查的事情, 坦白说,我没看懂什么意思。
    • 没有秒杀那么高并发,但是也存在同时写的情况,那普通的电商呢,也不能实现控制库存的情况吗?, 你喋喋不休的说这么多,我都不好意思不理你。