2012-07-29 8 views
5

Ich implementiere einen Core Service "Facade" für einige faule Programmierer, die ihren Codierungsstil nicht ändern wollen (mich eingeschlossen) und Objektcache implementieren wollten, was offensichtlich zu der großen Frage "wie lange und wie viel sollte ich cachen ".Kann der Tridion Core Service über Datenänderungen informiert werden?

Die ideale Antwort ist, für immer zu speichern, außer wenn Daten geändert werden.

Gibt es eine Möglichkeit (über ein WCF-Ereignis vielleicht), einen "Listener" für Datenänderungen zu implementieren, der zum Entfernen von Elementen aus dem Cache verwendet werden kann?

BTW, ich benutze .NET nativen ObjectCache (MemoryCache) mit einer 1 Minute Schiebe-Cache-Politik für jetzt.

Danke,

N

Antwort

7

Es gibt kein solches System eingebaute entweder in WCF oder Tridion, die ich kenne.

Sie könnten natürlich auch Ihre eigene Rolle, wo Sie:

  1. für Änderungen an die relevanten Daten auf dem TCM-Server Hören mit Event-Handler
  2. Haben diesen Event-Handler das Ereignis zu einem zentralen Benachrichtigungs-Server weiterleiten
  3. Haben sie Ihre WCF-Clients mit dem Benachrichtigungs-Server registrieren, wenn sie starten
  4. anschließend Haben Benachrichtigungs-Server die Benachrichtigungen an die angeschlossenen Clients senden

Dies ist im Wesentlichen ziemlich ähnlich, wie Tridions Broker Object Cache auf der Content Delivery-Ebene funktioniert.

Wenn Sie daran interessiert sind, solch einen Ansatz zu implementieren, würde ich vorschlagen, einen Blick auf die Signalr project zu werfen, die eine Menge Ärger daraus macht.


bearbeiten: es WCF stellt sich heraus, hat so etwas wie, was Sie genannt Rückrufe sind gefragt. Siehe this question und this blog post.

+0

Danke Frank. An dieser Stelle bin ich etwas widerwillig, "ein mehr" -Ereignis zu dem fraglichen System hinzuzufügen, ich werde darauf warten, dass es sich zuerst stabilisiert ... Der 1-Minuten-Cache wird zumindest die faule Programmierung abdecken (ich kann sie sogar reduzieren) weiter, da die Performance-Hits, die ich gesehen habe, durch Code verursacht werden, der dieselben Objekt-Sammlungen in verschiedenen Methoden immer wieder neu lädt) –

Verwandte Themen