0

我将一个实体存储在两个 Azure 存储表中。两个表中的数据是相同的,只是RowKeyPartitionKey不同(这是出于查询目的)。

问题

插入这些表时,我需要操作是事务性的——只有在两个插入都成功的情况下才必须提交数据。

CloudTable.ExecuteBatch(..)仅当实体属于同一分区时才有效。

没有其他方法可以做到这一点吗?

4

1 回答 1

2

简短的回答:

抱歉不行。实体批处理事务一次仅支持 1 个表和一些其他限制

长答案:

我们也遇到过类似的问题,我们必须在多个表中插入数据。我们所做的一件事是我们试图实现某种eventual consistency. 我们不是直接将数据写入表中,而是将数据写入队列并让后台工作人员角色处理该数据。一旦数据写入队列,我们​​假设数据最终会被持久化(还涉及一个缓存引擎,它也会在这里更新最新数据,以便应用程序可以获取最新数据)。后台工作者角色不断重试插入(使用InsertOrReplace语义而不是仅仅Insert语义),一旦所有数据都写入,我们只需从队列中删除消息。

于 2013-11-08T08:19:55.453 回答