アプリに、トランザクションで何らかの処理を行う関数があります。エンティティグループ内の他の属性に応じて、エンティティを作成するか、作成に失敗します。
私は、この関数が高速で連続して呼び出されることを確認するいくつかのテストを行ってきました。これらのテストでは、1秒間に数回可能です。
この関数は、エンティティグループから読み取るが、エンティティグループには書き込まないいくつかの遅延タスクをトリガーします。
何かおかしなことに気づきました。これらのタスクがすぐにトリガーされ、メインの関数呼び出しとインターリーブすると、競合エラーが頻繁に発生します。
延期されたタスクに数秒のカウントダウンを設定すると、メイン関数は正常に処理されます。
これは、延期されたタスクがメイン関数が書き込むエンティティグループで競合を引き起こしていることを示唆していますが、エンティティグループからの読み取りではこれを実行できないと思いましたか?キー名による検索は競合を引き起こしますか?フィルタを使用したクエリ?
それは私を困惑させるようなものです。これが起こっているべきですか?エンティティグループごとに1秒あたり1回の書き込みの制限があることを他の場所で読みましたが、私のテストは定期的にその制限を破っています...少なくともスピンオフの延期されたタスクが数秒間遅れた場合。
ちなみに、これは生産中です。
洞察をありがとう!