Azureテーブルストレージにテーブルがあるとしましょう
public class MyTable
{
public string PK {get; set;}
public string RowPK {get; set;}
public double Amount {get; set;}
}
そして、AzureQueueに「Add10toAmount」というメッセージが表示されます。
ここで、1人の労働者の役割を考えてみましょう
- このメッセージをキューから取得します
- テーブルから行を取得します
- 金額+=10
- テーブルの行を更新します
- そして失敗する
しばらくすると、メッセージが再びキューに入れられます。したがって、次の労働者の役割:
- このメッセージをキューから取得します
- テーブルから行を取得します
- 金額+=10
- テーブルの行を更新します
- キューからメッセージを削除します
これらのアクションは、のAmount += 20
代わりになりAmount += 10
ます。
どうすればそのような状況を回避できますか?