5

我正在为一些不想改变他们的编码风格(包括我)并想要实现对象缓存的懒惰程序员实现一个核心服务“门面”,这显然会导致“多久和多少”的大问题我应该缓存”。

理想的答案是永久缓存,除非数据更改。

有没有办法(可能通过一些 WCF 事件)为可用于从缓存中删除项目的数据更改实现“侦听器”?

顺便说一句,我现在使用 .NET 的本机 ObjectCache (MemoryCache) 和 1 分钟的滑动缓存策略。

谢谢,

ñ

4

1 回答 1

7

我所知道的 WCF 或 Tridion 中都没有内置这样的系统。

你当然可以自己动手,你可以:

  1. 使用 Event Handlers 监听 TCM 服务器上相关数据的变化
  2. 让这些事件处理程序将事件转发到中央通知服务器
  3. 让您的 WCF 客户端在启动时向该通知服务器注册
  4. 让通知服务器随后将通知发送到连接的客户端

这本质上与 Tridion 的 Broker Object Cache 在内容交付层上的工作方式非常相似。

如果您对实现这种方法感兴趣,我建议您查看Signalr 项目,它可以省去很多麻烦。


编辑:事实证明 WCF 具有类似于您所要求的称为回调的东西。请参阅此问题此博客文章

于 2012-07-29T14:11:01.683 回答