2012-07-29 14 views
5

Wdrażam usługę podstawową "Fasada" dla niektórych leniwych programistów, którzy nie chcą zmieniać swojego stylu kodowania (mnie włącznie) i chcieli wdrożyć pamięć podręczną obiektów, co oczywiście prowadzi do wielkiego pytania "jak długo i ile powinienem buforować ".Czy usługa podstawowa Tridion może zostać powiadomiona o zmianach danych?

Idealną odpowiedzią jest pamięć podręczna na zawsze, z wyjątkiem sytuacji, gdy dane zostały zmienione.

Czy istnieje sposób (za pośrednictwem jakiegoś zdarzenia WCF) do wdrożenia "detektora" dla zmian danych, które mogą być używane do usuwania elementów z ich pamięci podręcznej?

BTW, używam natywnej pamięci ObjectCache (MemoryCache) .NET z 1-minutową zasadą przesuwania pamięci podręcznej na teraz.

Dzięki,

N

Odpowiedz

7

Nie ma takiego systemu wbudowanego w obu WCF lub Tridion, które znam.

Można oczywiście toczyć własną rękę, w której:

  1. Posłuchaj zmian do odpowiednich danych na serwerze TCM z obsługi zdarzeń
  2. mieć te obsługi zdarzeń przekazania imprezę do centralnego serwera powiadomień
  3. Czy klienci WCF zarejestrować z tego serwera powiadomień, gdy zaczną się
  4. Czy serwer powiadomień następnie wysłać powiadomienia do podłączonych klientów

Jest to zasadniczo podobne do tego, jak pamięć podręczna obiektów pośredniczących Tridion działa na warstwie dostarczania treści.

Jeśli jesteś zainteresowany wdrożeniem takiego podejścia, proponuję rzucić okiem na Signalr project, co powoduje wiele kłopotów.


Edit: okazuje się, WCF ma coś podobnego do tego, co pytasz o nazwie callbacków. Zobacz this question i this blog post.

+0

Dzięki Frank. W tym momencie jestem nieco niechętny do dodania "jednego więcej" zdarzenia do systemu, o którym mowa, zaczekam na jego ustabilizowanie ... Pamięć 1-minutowa będzie przynajmniej obejmowała leniwe programowanie (może nawet ją zmniejszyć ponadto, ponieważ wyniki wydajności, które widziałem, są spowodowane przez przeładowywanie kodu tego samego zbioru obiektów w różnych metodach) –

Powiązane problemy