Dépendance des données de cache sur le fichier
La dépendance de fichier fournit un mécanisme pour invalider les données du cache en cas de sources de données non relationnelles. Ici, vous pouvez associer une dépendance de fichier/dossier à un élément de données de cache. Chaque fois que ce fichier/dossier est supprimé ou modifié, NCache supprimera son élément dépendant du cache. Le thread de nettoyage du cache surveille le fichier/dossier dépendant pour détecter tout changement à chaque fois. CleanInterval
.
Sur le fil de nettoyage du cache, NCache déclenche une dépendance dans les scénarios suivants :
- Le fichier de dépendances est supprimé/modifié.
- Le dossier de dépendances est supprimé/modifié.
- La dépendance est créée dans le fichier/dossier inexistant, mais lors de l'intervalle de nettoyage, elle est créée.
De même, plusieurs éléments peuvent dépendre d'un seul fichier. Toute modification apportée à un fichier, soit par mise à jour du fichier, soit par suppression, entraîne la suppression par le cache des éléments dépendants du cache. De même, un élément peut créer une dépendance sur plusieurs fichiers, dans File Dependency.
Vous pouvez également fournir un délai appelé startAfter
dans Dépendance du fichier qui indique quand commencer à surveiller le fichier dépendant pour tout changement. De cette façon, NCache commencera à vérifier le fichier dépendant après la startAfter
le temps s'est écoulé.
Dépendance des données du cache sur les prérequis des fichiers
- Pour en savoir plus sur les prérequis standard requis pour travailler avec tous NCache fonctionnalités côté client, veuillez vous référer à la page donnée sur Prérequis de l'API côté client.
- Pour plus de détails sur l'API, reportez-vous à : ICache, CacheItem, CacheItemAttributes, Dépendance, Mettre à jour les attributs, DépendanceFichier.
Important
Assurez-vous que le NCache Le service a accès au chemin du fichier où est placé le fichier dont il dépend.
Ajouter une dépendance de fichier avec les données du cache
CacheItem
est une classe personnalisée fournie par NCache qui peut être utilisé pour ajouter des données au cache et vous permet également de définir des métadonnées supplémentaires associées à un objet de cette classe. Ces métadonnées définissent les propriétés de l'élément telles que les dépendances, les expirations, etc.
Les Ajouter La méthode ajoute un nouvel élément dans les données du cache alors que la méthode insérer La méthode ajoute un nouvel élément avec dépendance et si l'élément existe déjà dans le cache, elle écrase les propriétés préexistantes.
Dans l'exemple suivant, les données ajoutées dans le cache sont le contenu du fichier placé au chemin spécifié en tant que CacheItem
avec dépendance sur le fichier. Toute modification du fichier entraînera l'expiration des données dépendantes présentes dans le cache. Les éléments expirés seront alors supprimés du cache CleanInterval
.
// Precondition: Cache is already connected
// Specify the file path to add dependency on the file
string filepath = "D:\\Products.csv";
// Getting product from file.
Product product = FetchProductFromFile(filepath);
string key = $"Product: {product.ProductID}";
// Create a new cacheItem with product data.
var cacheItem = new CacheItem(product);
// Create the dependency on the file with specified path.
cacheItem.Dependency = new FileDependency(filepath);
// Add the file data in the cache with dependency on the file
cache.Add(key, cacheItem);
Notes
Pour garantir la sécurité de l'opération, il est recommandé de gérer toutes les exceptions potentielles au sein de votre application, comme expliqué dans Gestion des échecs.
Déclencher la dépendance de fichier avec retard
Si vous souhaitez ajouter une dépendance à un élément déclenché après une heure particulière, NCache vous permet de spécifier l'intervalle de temps pour cela.
Les Ajouter ajoute un nouvel élément dans le cache alors que la méthode insérer La méthode ajoute un nouvel élément avec dépendance et si l'élément existe déjà dans le cache, elle écrase ses propriétés.
Dans l'exemple suivant, les données ajoutées dans le cache sont le contenu du fichier placé au chemin spécifié avec dépendance sur le fichier. La dépendance sera déclenchée après un délai de 20 minutes. Toute modification du fichier entraînera l'expiration des données dépendantes présentes dans le cache. Les éléments expirés seront alors supprimés du cache CleanInterval
.
// Specify the file path to add dependency on the file
string filepath = "D:\\Products.csv";
//Getting product from file.
Product product = FetchProductFromFile(filepath);
// Creating a unique key for product.
string key = $"Product: {product.ProductID}";
// Create a new cacheItem with product data.
var cacheItem = new CacheItem(product);
// Create the dependency on the file with specified path.
cacheItem.Dependency = new FileDependency(filepath, DateTime.Now.AddMinutes(20));
// Add the file data in the cache with dependency on the file
cache.Insert(key, cacheItem);
Ajouter une dépendance de fichier sur plusieurs fichiers
Vous pouvez également ajouter une dépendance de fichier à un élément qui dépend de plusieurs fichiers ou dossiers. De cette façon, un seul élément peut dépendre de plusieurs éléments en utilisant le Ajouter or insérer méthode. le Add
ajoute un nouvel élément dans le cache alors que la méthode Insert
La méthode ajoute un nouvel élément avec dépendance et si l'élément existe déjà dans le cache, il écrase ses propriétés.
L'exemple suivant ajoute un élément avec une clé qui dépend de deux fichiers placés sur les chemins spécifiés.
// Specify the file paths to add dependency on the file
string orderFilePath = "D:\\Orders.csv";
string orderDetailFilePath = "D:\\OrderDetail.csv";
string[] filePaths = { orderFilePath, orderDetailFilePath };
// Getting order from file.
Order order = FetchOrderFromFile(orderFilePath);
string key = $"Order: {order.OrderID}";
// Create a new cacheItem with order data.
var cacheItem = new CacheItem(order);
// Create the dependency on the files with specified path.
cacheItem.Dependency = new FileDependency(filePaths);
// Add the file data in the cache with dependency on the files.
cache.Add(key, cacheItem);
Ajouter une dépendance de fichier aux éléments de cache existants
NCache vous offre également la possibilité d'ajouter facilement une dépendance de clé à un élément déjà présent dans le cache, sans le réinsérer dans le cache.
Important
Cette approche est comparativement moins légère et plus rentable puisque les éléments sont déjà présents dans le cache.
Utilisation de l'API UpdateAttributes
Cela se fait à travers le CacheItemAttribute
classe, qui a la propriété de Dependency
être opposé à CacheItem
. L'attribut est ensuite comparé à la clé existante de l'élément, à l'aide du UpdateAttributes
méthode de ICache
interface.
L'exemple suivant ajoute un élément au cache sans dépendance, puis définit la dépendance de fichier pour l'élément à l'aide de l'option UpdateAttributes
méthode. Cela ne nécessite pas d'ajouter à nouveau l'élément au cache.
// Precondition: Cache is already connected
// Specify the file path to add dependency on the file
string filepath = "D:\\Products.csv";
string key = $"Product: 1";
// Create a new cacheItemAttribute.
var attribute = new CacheItemAttributes();
// Create the dependency on the file with specified path.
attribute.Dependency = new FileDependency(filepath);
// update the cacheItem.
cache.UpdateAttributes(key, attribute);
Ressources additionnelles
NCache fournit un exemple d'application pour la dépendance de fichier sur GitHub.
Voir aussi
.RAPPORTER: Alachisoft.NCache.Dépendances.d'exécution espace de noms. espace de noms.
Java: com.alachisoft.ncache.dépendances.d'exécution espace de noms.
Node.js : DépendanceFichier classe.
python: ncache.dépendances.d'exécution classe.