代码之家  ›  专栏  ›  技术社区  ›  Manuel

在parse服务器上创建文档时如何防止竞争条件?

  •  0
  • Manuel  · 技术社区  · 6 年前

    mongoDB 作为数据库。

    对于中的每个用户 User UserProfile 收藏。用户配置文件有一个指针字段作为对 用户

    问题是在注册过程中为同一用户创建了多个用户配置文件。

    这是因为注册过程如下所示:

    1. 用户注册
    2. 在中创建用户配置文件 afterSave 属于 用户
    3. 客户: 注册后调用云代码函数 updateProfile
    4. 服务器: 更新配置文件 查找现有的用户配置文件,如果不存在,则创建新的用户配置文件

    更新配置文件 在步骤4中创建新的用户配置文件。时间差 createdAt

    现在:

    • 更新配置文件 在创建用户配置文件之前找不到它。另一方面,每个用户都需要有与之关联的用户配置文件,因此创建it服务器端是确保这一点的唯一方法。

    • 如果我将步骤4更改为不创建新配置文件,则当客户端调用云代码函数时,配置文件中的信息不会更新 更新配置文件 因为步骤1中的用户配置文件尚未创建。

    更新:

    • 很遗憾,无法在上创建用户配置文件 beforeSave 用户 因为它好像没有 ID 但是。如果这是可能的,那么将确保创建用户配置文件 之前 客户打电话 更新配置文件 .
    0 回复  |  直到 6 年前