IReliableDictionary的内容是否已更改?

时间:2018-06-04 14:28:25

标签: azure-service-fabric

我定期对Azure服务架构进行IReliableDictionary的完整备份。每隔X分钟我检查一次,看看集合中的元素数量是否发生了变化,如果是这样,我会创建一个新的备份。

这显然有一个缺点,如果我只是更改字典中项目的值,集合大小不会改变,也不会发生备份。

一种解决方案是枚举整个字典并计算集合的总体哈希值(假设可以保证项目的顺序)。有没有更好的方法来确定IReliableDictionary是否已更改?

1 个答案:

答案 0 :(得分:2)

StateManager生成的few events可能会有所帮助。

如果事务已提交,则会引发

TransactionChanged个事件。

例如:

public MyService(StatefulServiceContext context)
    : base(MyService.EndpointName, context, CreateReliableStateManager(context))
{
    this.StateManager.TransactionChanged += this.OnTransactionChangedHandler;
}