收藏
回答

如何解决云函数并发调用时,重复向云库添加相同数据 ?

云函数A中 :需要先在detail表中查询 该用户是否存在类型为1的当天的记录。如果没有就在goal表给这个人加200积分,同时在明细表中add一个类型为1的当天的记录。

当云函数A被并发调用时,如果detail表中当天没有类型为1的记录,是不是会一下子加两次200分,add两个类型为1的记录。没有队列的话如何避免这种问题,

回答关注问题邀请回答
收藏

2 个回答

  • 老张
    老张
    2020-10-04

    控制不要并发。

    2020-10-04
    有用 1
    回复 10
    • 大杰哥!
      大杰哥!
      2020-10-04
      大兄弟,怎么控,,制,云函数不是都在独立空间运行么?那我可不能要求两个人不能同时,。。。这个万一同时触发了怎么办
      2020-10-04
      2
      回复
    • 老张
      老张
      2020-10-04回复大杰哥!
      同一个人不并发就行了。两个不同的用户并不会冲突。
      2020-10-04
      2
      回复
    • 大杰哥!
      大杰哥!
      2020-10-04回复老张
      咋可能,两个人同时查询到表中不包含,然后同时add,这个就算有事务锁也防不住呀
      2020-10-04
      2
      回复
    • 老张
      老张
      2020-10-04回复大杰哥!
      A用户查询的是A用户的类型为1的记录,B用户查询的是B用户的类型为1的记录,两个人不可能同时查同一条既是A的又是B的类型为1的记录。
      2020-10-04
      2
      回复
    • 大杰哥!
      大杰哥!
      2020-10-05回复老张
      两个人查询的是他们共同的父节点的类型为1的记录,会查到一起去的。我后来发现有乐观锁这么个东西,我加版本控制了
      2020-10-05
      回复
    查看更多(5)
  • Dyn
    Dyn
    2020-10-16

    你好,遇到类似问题,请问后来如何解决了?

    2020-10-16
    有用
    回复 1
    • 大杰哥!
      大杰哥!
      2020-12-10
      我当前是通过索引的唯一性,让第二个进来的添加失败回滚的。云函数这边不知道后来有没有出排队的东西,
      2020-12-10
      回复
登录 后发表内容
问题标签