0

誰かが次のシナリオで何が起こるか説明してもらえますか:

2 つの Cloud Code 関数があります。

  • FunctionOne は promise を使用していくつかの非同期操作を実行し、クラス A のインスタンスを変更します。
  • FunctionTwo はクラス A のインスタンスを削除します

FunctionTwo への呼び出しが行われ、型 A のインスタンスが削除されると、同じインスタンスが FunctionOne への呼び出しによって変更および保存されます。(これらの呼び出しは、たとえば 2 つの異なるモバイル デバイスから発信される可能性があります)。

4

1 に答える 1

0

私の知る限り、解析モデルにはトランザクションはありません。同時実行操作では、'busy' などのフィールドを true に設定し、最終的に false に戻すために、些細なランダム遅延を入れて、安全ではない回避策を使用しました。これで問題を軽減できますが、もちろん解決にはなりません。

その場合、保存するいくつかのダーティ フィールドを持つオブジェクトがあるため、「更新するオブジェクトが見つかりません」などのエラーが返される可能性がありますが、FunctionTwo によって削除されたばかりであるため、オブジェクトはデータベースに存在しません。関数 FunctionOne の実行中にそのエラーが発生した場合は、そのクラス テーブルの新しい行インスタンスを生成し、それを新しい行として再度保存できます (これにより、フィールドが新しい異なる objectId を持つ新しい行が生成されます)。もちろん )

于 2014-08-24T17:10:30.650 に答える