我定期对Azure服务架构进行IReliableDictionary的完整备份。每隔X分钟我检查一次,看看集合中的元素数量是否发生了变化,如果是这样,我会创建一个新的备份。
这显然有一个缺点,如果我只是更改字典中项目的值,集合大小不会改变,也不会发生备份。
一种解决方案是枚举整个字典并计算集合的总体哈希值(假设可以保证项目的顺序)。有没有更好的方法来确定IReliableDictionary是否已更改?
答案 0 :(得分:2)
StateManager
生成的few events可能会有所帮助。
TransactionChanged
个事件。
例如:
public MyService(StatefulServiceContext context)
: base(MyService.EndpointName, context, CreateReliableStateManager(context))
{
this.StateManager.TransactionChanged += this.OnTransactionChangedHandler;
}