2010-05-14 6 views
0

Je dispose d'un service de cache, fonctionne comme .net remoting, je souhaite créer un autre service Windows pour nettoyer ce service de cache en transférant les objets du cache vers les fichiers. parce qu'ils sont dans un processus séparé, est-ce que je pourrais accéder à ce service de cache ou dois-je exposer une méthode à partir du service de cache pour faire ce travail de nettoyage? Le "nettoyage" signifie que je veux sérialiser l'objet du cache au fichier et ces fichiers sauvegardés seront utilisés pour un traitement ultérieur. Laissez-moi vous expliquer cette application plus en détail. l'application est principalement un service de journal pour consigner toute la demande à venir et ces demandes seront sauvegardées dans db pour plus d'exploration de données. nous avons 2 conception pour ce système de notation 1) utiliser MSMQ, mais semble que la performance n'est pas assez bon, nous ne l'utilisons pas. 2) nous concevons un service de cache, chaque requête est sauvegardée dans le cache, et nous avons besoin d'une autre fonction pour nettoyer le cache en sérialisant l'objet dans le fichier.Conception de service ou accès à un autre processus

+0

Votre question est un peu confuse. Que voulez-vous dire par "transférer les objets du cache vers les fichiers" quand on parle de "nettoyer"? En outre, qu'en est-il de la modification de la notification (invalidation du cache) à partir des ressources mises en cache? Pensez-vous en avoir besoin aussi? –

+0

Est-il logique de séparer ces fonctions en services distincts? Cela ressemble à une fonctionnalité assez fine qui pourrait être mieux placée avec le service de cache d'origine. Veuillez clarifier votre raisonnement pour séparer ou ne pas séparer. – mdma

Répondre

0

Si je suis cela correctement alors « oui », vous devez modifier le cache soit

(a) exposer un mécanisme qui déclencherait « nettoyage » à l'intérieur du processus de cache lui-même. Dans ce scénario, le cache disposerait de toutes les connaissances requises pour créer le fichier, sérialiser les objets dans le fichier, puis supprimer les objets du cache. Cette option est logique si vous voulez que l'opération soit atomique. (B) exposer un méthanisme qui permettrait au service de nettoyage externe de recevoir les objets mis en cache afin qu'il puisse effectuer toute la sérialisation, la persistance dans le fichier, etc. Ceci pourrait être accompli par une forme de publication/abonnement, une requête continue, etc. Le cache devrait également exposer des méthodes qui permettraient au service de nettoyage de signaler une demande de suppression des objets mis en cache qui ont été envoyés au fichier. (C) faire du nettoyage une fonction inhérente à la mémoire cache ... Dans le monde de la mémoire cache/des données, c'est très commun et on parle souvent de support d'écriture ou de sauvegarde.

Dans tous les cas, vous devrez changer le cache s'il n'expose pas déjà les méthodes à mettre (par exemple écrire/cache), lire/prendre, et/ou supprimer. À strictement parler, vous n'avez pas besoin de Remoting pour cela, alors ne vous sentez pas contraint à cela. Remoting est sympa mais il faut savoir que c'est cher sur le fil. en mémoire, et dans Garbage Collection.

Questions connexes