Caching 如何在乐观并发模型下处理AppFabric中的数据争用?

Caching 如何在乐观并发模型下处理AppFabric中的数据争用?,caching,appfabric,Caching,Appfabric,根据MSDN页面,Put以版本信息作为可选参数,支持乐观并发;仅当要替换的对象的版本相同时,Put才会成功 当版本不同时,有什么好的解决方案?缓存客户端是一个WCF服务。如果版本不同,则表示另一个客户端已经在您之前进入并更新了缓存对象。您可以通过捕获调用Put时抛出的DataCacheException并根据DataCacheErrorCode枚举检查ErrorCode来检测此问题-CacheItemVersionMismatch是要测试的特定条目。捕获此错误表示当前客户端正在使用的缓存项已过时

根据MSDN页面,Put以版本信息作为可选参数,支持乐观并发;仅当要替换的对象的版本相同时,Put才会成功


当版本不同时,有什么好的解决方案?缓存客户端是一个WCF服务。

如果版本不同,则表示另一个客户端已经在您之前进入并更新了缓存对象。您可以通过捕获调用Put时抛出的DataCacheException并根据DataCacheErrorCode枚举检查ErrorCode来检测此问题-CacheItemVersionMismatch是要测试的特定条目。捕获此错误表示当前客户端正在使用的缓存项已过时,在再次尝试进行更改之前,您可能需要从客户端获取最新版本,您可能希望也可能不希望向用户显示该版本

这就是为什么在乐观并发场景中,您希望获取缓存的对象,进行更改,然后尽快将其返回到缓存-您不希望在任何类型的长时间运行过程中保留版本,或者您开始看到这些类型的问题