云开发锁表、秒杀机制的简单实现
发布于 4 年前 作者 jieyang 3512 次浏览 来自 分享

1000个用户抢10个奖品,如何实现锁表、秒杀等功能?

极简代码如下:

    db.collection('products').where({
      _id: productId,
      stock: _.gt(0)
    }).update({
      data: {
        stock: _.inc(-1),
        luckers: _.addToSet(openid)//秒杀的同时,标注用户openid
      }
    }).then(res => {
      console.log(res)
    })

以上代码,在1000个人的小程序同时执行,只有10个人(与stock相等)能够成功,返回res.stats.updated==1,其余人都会失败。从而实现了秒杀功能。

回到顶部