在Cloud Code中解析并发性

时间:2014-08-23 08:34:10

标签: javascript parse-platform cloud-code

有人可以解释一下以下情况会发生什么:

我们有2个云代码功能。

  • FunctionOne使用promises执行一些异步操作,并进行修改 A类的实例。
  • FunctionTwo删除A类实例

对FunctionTwo的调用发生了什么,并且删除了类型A的实例,同时通过调用FunctionOne修改并保存了同一个实例? (例如,这些电话可能来自2个不同的移动设备。)

1 个答案:

答案 0 :(得分:0)

据我所知,解析模型上没有事务。对于并发操作,我使用了一种不安全的解决方法,设置了一个简单的随机延迟,用于设置像忙碌的字段一样。在true,最后将其恢复为false。这可以减少问题,但当然它并没有解决它。

在这种情况下,它可能会返回一个错误,例如“找不到更新的对象”。因为你有一个带有一些脏字段的对象要保存,但db上的对象不再存在,因为它刚刚被你的FunctionTwo删除了。 也许,如果在您运行FunctionOne函数时出现该错误,您可以为该类表生成一个新的行实例,并将其再次保存为新行(这将生成一个新行,您的字段为BUT,带有一个新行当然不同的对象)