是否可以通知Tridion Core Service数据更改?

Nun*_*res 5 tridion

我正在为一些懒惰的程序员实现一个核心服务"Facade",这些程序员不想改变他们的编码风格(包括我),并希望实现对象缓存,这显然会导致"多长时间和多少"这个大问题我应该缓存".

理想的答案是永远缓存,除非数据发生变化.

有没有办法(通过一些WCF事件)为数据更改实现一个"监听器",可用于从缓存中删除项目?

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

谢谢,

ñ

Fra*_*len 7

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

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

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

这基本上与Tridion的Broker Object Cache在Content Delivery层上的工作方式非常相似.

如果你对实现这种方法感兴趣,我建议看一下Signalr项目,它会消除很多麻烦.


编辑:事实证明,WCF有类似于你所要求的叫做Callbacks的东西.看到这个问题这篇博文.