假设我在 Azure 表存储中有表
public class MyTable
{
public string PK {get; set;}
public string RowPK {get; set;}
public double Amount {get; set;}
}
Azure Queue 中的消息显示Add 10 to Amount。
现在让我们说一个工人角色
- 从队列中获取此消息
- 从表中获取行
- 金额 += 10
- 更新表中的行
- 失败
一段时间后,消息再次在队列中可用。所以下一个工人角色:
- 从队列中获取此消息
- 从表中获取行
- 金额 += 10
- 更新表中的行
- 从队列中删除消息
这些动作导致Amount += 20
而不是Amount += 10
。
我怎样才能避免这种情况?