Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout

Procédure : Réception de notifications d'Azure Cache

Mis à jour: septembre 2014

noteRemarque
Pour obtenir des conseils sur le choix de l'offre Azure Cache appropriée pour votre application, consultez Choix de l'offre Azure Cache appropriée.

Cette rubrique décrit l'ajout d'un rappel de notification de cache permettant à votre application de recevoir des notifications de cache.

L'ajout d'un rappel de notification de cache inclut deux étapes. Commencez par créer une méthode devant être appelée lorsqu'une notification de cache est déclenchée par une ou plusieurs opérations de cache. La méthode appelée avec les notifications de cache doit accepter les mêmes paramètres que le délégué DataCacheNotificationCallback. Ajoutez ensuite un rappel à l'aide d'une des trois méthodes disponibles à partir de l'objet DataCache :

Utilisez le paramètre filter pour définir les types d'opérations de cache qui déclencheront des notifications de cache. Utilisez le nom de la méthode créée lors de la première étape pour le paramètre clientDelegate.

  1. Créez la méthode qui sera déclenchée par la notification de cache. Vérifiez que la méthode accepte les mêmes paramètres que le délégué DataCacheNotificationCallback.

  2. Ajoutez un rappel. Utilisez une des trois méthodes disponibles à partir de l'objet DataCache pour définir l'étendue de la notification : AddCacheLevelCallback, AddRegionLevelCallback ou AddItemLevelCallback.

    1. Utilisez l'énumération DataCacheOperations dans le paramètre filter pour spécifier le type des opérations de cache qui doivent déclencher des notifications. Sélectionnez plusieurs énumérations en séparant celles-ci à l'aide de l'opérateur OR binaire pour effectuer une opération OR au niveau du bit. Pour ce faire, utilisez le caractère | dans C# et l'opérateur Or dans Visual Basic.

    2. Utilisez le nom de la méthode à appeler lorsque ces notifications surviennent dans le paramètre clientDelegate.

    3. Définissez la méthode d'ajout d'un rappel comme égale à un objet DataCacheNotificationDescriptor que vous pouvez utiliser à un autre emplacement dans votre programme pour supprimer le rappel de notification de cache.

La première étape de l'inscription aux notifications de cache consiste à créer la méthode appelée par la notification. Celle-ci doit accepter les mêmes paramètres que le délégué DataCacheNotificationCallback. L'exemple suivant montre une méthode pouvant être appelée par une notification de cache.


//method invoked by notification "ndCacheLvlAllOps" 
public void myCacheLvlDelegate(string myCacheName,
    string myRegion, 
    string myKey, 
    DataCacheItemVersion itemVersion,
    DataCacheOperations OperationId, 
    DataCacheNotificationDescriptor nd)
{
    //display some of the delegate parameters
    Console.WriteLine("A cache-level notification was triggered!");
    Console.WriteLine("    Cache: " + myCacheName);
    Console.WriteLine("    Region: " + myRegion);
    Console.WriteLine("    Key: " + myKey);
    Console.WriteLine("    Operation: " + OperationId.ToString());
    Console.WriteLine();
}

La deuxième étape consiste à ajouter un rappel pour une ou plusieurs opérations de cache. Dans cet exemple, une notification est créée pour appeler la méthode de l'exemple précédent. Pour la démonstration, cette notification a été configurée pour toutes les opérations de cache possibles sur l'étendue de notification d'un cache.

Pour définir plusieurs opérations de cache, vous pouvez utiliser l'opérateur OR binaire afin d'affecter plusieurs énumérations DataCacheOperations à une variable DataCacheOperations que vous pouvez utiliser comme paramètre Filter. Pour ajouter un rappel aux opérations de cache sur l'étendue de notification d'un cache, utilisez la méthode AddCacheLevelCallback.

noteRemarque
Il est déconseillé d'effectuer cette opération dans une application de production. Cet exemple a été conçu pour la démonstration uniquement.


//specify all possible item and region operations
DataCacheOperations allCacheOperations = DataCacheOperations.AddItem |
    DataCacheOperations.ReplaceItem |
    DataCacheOperations.RemoveItem |
    DataCacheOperations.CreateRegion |
    DataCacheOperations.ClearRegion |
    DataCacheOperations.RemoveRegion;

//add cache-level notification callback 
//all cache operations from a notifications-enabled cache
DataCacheNotificationDescriptor ndCacheLvlAllOps
    = myTestCache.AddCacheLevelCallback(allCacheOperations, myCacheLvlDelegate);

L'exemple suivant montre l'ajout d'un rappel pour une opération de cache sur l'étendue de notification d'une région, le rappel étant uniquement déclenché lorsque la région TestRegion est ajoutée au cache.


//add region-level notification callback for region "TestRegion"
//trigger notification with CreateRegion operation
DataCacheNotificationDescriptor ndRegionCreateRegOp
    = myTestCache.AddRegionLevelCallback("TestRegion",
    DataCacheOperations.CreateRegion, myRegionLvlAddDelegate);

L'exemple suivant montre l'ajout d'un rappel pour des opérations de cache sur l'étendue de notification d'un élément, le rappel étant uniquement déclenché lorsqu'un objet est ajouté ou remplacé dans le cache à l'aide de la clé TestKey.

noteRemarque
Seules les opérations d'élément AddItem, ReplaceItem et RemoveItem peuvent déclencher des notifications de cache avec des rappels au niveau de l'élément. La spécification des opérations de région dans le paramètre Filter lors de l'ajout d'un rappel au niveau de l'élément génère une exception.


//add item-level notification callback for item "TestKey"
//trigger notification with AddItem and ReplaceItem operations
DataCacheNotificationDescriptor ndItemUpdateOps
    = myTestCache.AddItemLevelCallback("TestKey",
        (DataCacheOperations.AddItem | DataCacheOperations.ReplaceItem),
        myItemLvlUpdateDelegate);

  1. La méthode RemoveCallback permet de supprimer le rappel de notification de cache. Utilisez l'objet DataCacheNotificationDescriptor approprié pour le paramètre nd. Utilisez l'objet NotificationDescriptor que vous avez reçu lors de l'inscription à la notification pour cesser de recevoir des notifications.

Dans cet exemple, le client de cache et trois objets DataCacheNotificationDescriptor sont déclarés au niveau de la classe afin que les méthodes d'ajout et de suppression des rappels puissent y accéder.


//define variables for class
DataCache myTestCache;
DataCacheNotificationDescriptor ndCacheLvlAllOps;
DataCacheNotificationDescriptor ndRegionLvlAllOps;
DataCacheNotificationDescriptor ndItemLvlAllOps;

La démarche décrite dans cet exemple utilise la méthode RemoveCallback pour supprimer les rappels correspondant aux trois objets DataCacheNotificationDescriptor de l'exemple précédent.


//remove cache notification callbacks
public void RemoveNotificationCallbacks()
{
    myTestCache.RemoveCallback(ndCacheLvlAllOps);
    myTestCache.RemoveCallback(ndRegionLvlAllOps);
    myTestCache.RemoveCallback(ndItemLvlAllOps);
}

Afficher:
© 2015 Microsoft