我们正在研究使用 Windows AppFabric 迁移到分布式缓存。我们的 ASP.NET 4.0 应用程序当前有一个使用 MemoryCache 的缓存实现。
一个关键特性是,当项目被添加到缓存中时,会包含一个包含 ChangeMonitor 的 CacheItemPolicy:
CacheItemPolicy policy = new CacheItemPolicy();
policy.Priority = CacheItemPriority.Default;
policy.ChangeMonitors.Add(new LastPublishDateChangeMonitor(key, item, GetLastPublishDateCallBack));
更改监视器在内部使用计时器来定期触发传递给它的委托——这通常是一种从数据库中获取值以进行比较的方法。
当一个项目被添加到缓存中时,策略和它的更改监视器就会被包括在内:
Cache.Add(key, item, policy);
早期查看 AppFabric 的 DataCache 类似乎表明,在将项目添加到缓存时可以包含时间跨度,而 CacheItemPolicy 本身不能。
是否有另一种方法可以在 AppFabric 中实现相同的 ChangeMonitor 类型的功能。也许是通知?
干杯
尼尔