2012-07-29 15 views
5

Estoy implementando una "Fachada" de Core Services para algunos programadores perezosos que no quieren cambiar su estilo de codificación (yo incluido), y quería implementar el caché de objetos, lo que obviamente lleva a la gran pregunta de "por cuánto tiempo y cuanto debería caché ".¿Se puede notificar al servicio principal de Tridion de los cambios en los datos?

La respuesta ideal es almacenar en caché para siempre, excepto cuando se cambian los datos.

¿Existe alguna forma (quizás a través de algún evento de WCF) de implementar un "oyente" para los cambios de datos que podrían usarse para eliminar elementos de su caché?

BTW, estoy usando ObjectCache nativo de .NET (MemoryCache) con una política de caché deslizante de 1 minuto por ahora.

Gracias,

N

Respuesta

7

No hay tal sistema incorporado en cualquiera de WCF o Tridion, que yo sepa.

Se podría, por supuesto, hágalo usted mismo, donde:

  1. escuchar los cambios a los datos pertinentes en el servidor de la medicina tradicional china con controladores de eventos
  2. tener esos controladores de eventos remitir el caso a un servidor central de notificación
  3. en tus clientes WCF registro con el servidor de notificaciones cuando se inician
  4. dispone de un servidor de notificación posteriormente enviar las notificaciones a los clientes conectados

Esto es esencialmente bastante similar a cómo funciona la Caché de objetos del intermediario de Tridion en el nivel de Entrega de contenido.

Si está interesado en implementar un enfoque de este tipo, le sugiero que consulte el Signalr project, que le saca muchas molestias.


Editar: resulta que WCF tiene algo parecido a lo que estás pidiendo llamada devoluciones de llamada. Ver this question y this blog post.

+0

Gracias Frank. En este momento soy un poco reacio a agregar el evento "uno más" al sistema en cuestión, esperaré a que se estabilice primero ... El caché de 1 minuto cubrirá al menos la programación perezosa (incluso puedo reducirla) Además, dado que los resultados de rendimiento que he estado viendo son causados ​​por el código de recarga de las mismas colecciones de objetos una y otra vez en diferentes métodos. –

Cuestiones relacionadas