使用企业缓存块一次性刷新整个缓存



我正在考虑在我的。net 3.5服务中使用企业缓存块来缓存数据库中的一堆静态数据。

从我所读到的一切,似乎FileDependency是存储不经常过期的静态数据的最佳选择。但是,当文件更改并且缓存被刷新时,我需要获得一次回调以对该特定缓存进行一些后期处理。如果我实现ICacheItemRefreshAction并在向缓存添加项时注册它,我将为它们中的每一个获得一个回调。

是否有一种方法可以为整个缓存注册一个回调,这样我就不会在缓存刷新时看到数千个回调被调用?

谢谢

为了解决你的后续问题,有一个比FileDependency更好的方法:你可以在ICacheItemExpiration中包装一个SqlDependency。示例代码请参见sqlachedependency with the Caching Application Block。

这种方法只适用于SQL Server,并且需要设置Service Broker。

在缓存级回调方面,我没有看到一个开箱即用的方式来实现这一点;几乎所有内容都与道具关卡相关。你能做的就是创建你自己的CacheManager实现,它具有缓存级回调的功能。

另一种方法可能是让ICacheItemRefreshAction只在缓存为空时执行任何操作(即最后一项已被删除)。

最新更新