Aracılığıyla paylaş


Önbellek Bildirimi Geri Çağırması Ekleme (Windows Server AppFabric Önbelleğe Alma)

Windows Server AppFabric, önbellek kullanan uygulamanızın önbellek bildirimleri almasını sağlar. Bu konuda, uygulamanızı önbellek bildirimlerini almak için etkinleştirecek olan önbellek bildirimi geri çağrısının nasıl ekleneceği açıklanmıştır. Önbellek bildirimleri hakkında daha fazla bilgi için bkz. Önbellek Bildirimleri (Windows Server AppFabric Önbelleğe Alma).

Önbellek bildirim geri çağrısı iki adımda eklenir. Öncelikle, bir veya daha fazla önbellek işlemi tarafından bir önbellek bildirimi tetiklendiğinde çağrılacak olan bir yöntem oluşturun. Önbellek bildirimleri ile çağırdığınız bu yöntem DataCacheNotificationCallback temsilcisi ile aynı parametreleri kabul etmelidir. İkinci adımda, DataCache nesnesinden kullanılabilen üç yöntemden birini kullanarak bir geri çağrı ekleyin:

Önbellek bildirimlerini tetiklemesini istediğiniz önbellek işlem türlerini tanımlamak için filter parametresini kullanın. clientDelegate parametresi için ilk adımda oluşturduğunuz yöntemin adını kullanın.

Not

Uygulamanızın bildirimleri kullanabilmesi için bunları adlandırılmış bir önbellekte etkinleştirmelisiniz. notificationsEnabled parametresini New-Cache veya Set-CacheConfig komutlarıyla kullanın. Daha fazla bilgi için bkz. Windows Server AppFabric Önbelleğe Alma Özelliklerini Yönetmek için Windows PowerShell Kullanma.

Bir veya birden fazla önbellek işlemi için bir geri çağrı eklemek üzere

  1. Önbellek bildirimi tarafından tetiklenmesini istediğimiz yöntemi oluşturun. Yöntemin, DataCacheNotificationCallback temsilcisiyle aynı parametreleri kabul ettiğinden emin olun.

  2. Bir geri çağrı ekleyin. Bildirim kapsamını tanımlamak için DataCache nesnesinden kullanılabilen üç yöntemden birini kullanın: AddCacheLevelCallback, AddRegionLevelCallback veya AddItemLevelCallback.

    1. Hangi tür önbellek işlemlerinin bildirimleri tetikleyeceğini belirlemek için filter parametresindeki DataCacheOperations sabit listesini kullanın. Bit seviyesinde OR gerçekleştirmek için sabit liste öğelerini ikili OR işleci ile ayırarak birden fazla sabit liste öğesi seçin. Bunu yapmak için C#'de | karakterini ve Visual Basic'de Or işlecini kullanın.

    2. Bu bildirimler clientDelegate parametresinde gerçekleştiğinde çağırmak istediğiniz yöntemin adını kullanın.

    3. Geri çağrı ekleme yöntemini, önbellek bildirimi geri çağrısını kaldırmak için programınızın başka bir yerinde kullanabileceğiniz DataCacheNotificationDescriptor nesnesine eşit olacak biçimde ayarlayın.

Örnek

Önbellek bildirimleri için kaydederken uygulanması gereken ilk adım, bildirim tarafından çağrılmasını istediğiniz bir yöntem oluşturmaktır. Bildirim tarafından çağrılan yöntem, DataCacheNotificationCallback temsilcisi ile aynı parametreleri kabul etmelidir. Bu örnek, önbellek bildirimi ile çağrılabilen bir yöntem örneği göstermektedir.

'method invoked by notification "ndCacheLvlAllOps" 
Public Sub myCacheLvlDelegate(ByVal myCacheName As String, _
    ByVal myRegion As String, _
    ByVal myKey As String, _
    ByVal itemVersion As DataCacheItemVersion, _
    ByVal OperationId As DataCacheOperations, _
    ByVal nd As DataCacheNotificationDescriptor)

    '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()
End Sub
//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();
}

İkinci adım, bir veya birden fazla önbellek işlemi için bir geri çağrı eklemektir. Bu örnekte, bir önceki örnekteki yöntemi çağırmak için bir bildirim oluşturulur. Bu bildirim, yalnızca gösterim amacıyla önbellek düzeyinde bildirim kapsamı olan tüm olası önbellek işlemleri için yapılandırılmıştır.

Birden fazla önbellek işlemi tanımlamak istiyorsanız ikili OR işlecini kullanarak filtre parametresi için kullanılabilen bir DataCacheOperations değişkenine birden fazla DataCacheOperations numaralandırması atayabilirsiniz. Önbellek düzeyinde bildirim kapsamı olan önbellek işlemlerine bir geri çağrı eklemek için AddCacheLevelCallback yöntemini kullanın.

Not

Bunu üretim uygulamasında yapmanızı önermeyiz. Bu örnek yalnızca gösterim amaçlıdır.

'specify all possible item and region operations
Dim allCacheOperations As DataCacheOperations
allCacheOperations = DataCacheOperations.AddItem Or _
    DataCacheOperations.ReplaceItem Or _
    DataCacheOperations.RemoveItem Or _
    DataCacheOperations.CreateRegion Or _
    DataCacheOperations.ClearRegion Or _
    DataCacheOperations.RemoveRegion

'add cache-level notification callback 
'all cache operations from a notifications-enabled cache
Dim ndCacheLvlAllOps as DataCacheNotificationDescriptor = _
    myTestCache.AddCacheLevelCallback(allCacheOperations, AddressOf myCacheLvlDelegate)
//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);

Sonraki örnekte, bölge düzeyinde bildirim kapsamı olan ve yalnızca önbelleğe TestRegion adında bir bölge eklendiği zaman tetiklenen bir önbellek işlemine geri çağrının nasıl eklendiği gösterilmiştir.

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

Sonraki örnekte, öğe düzeyinde bildirim kapsamı olan ve yalnızca TestKey anahtarını kullanarak önbelleğe bir nesne eklendiği veya kaldırıldığında tetiklenen bir önbellek işlemine geri çağrının nasıl eklendiği gösterilmiştir.

Not

Yalnızca öğe işlemleri AddItem, ReplaceItem ve RemoveItem öğe düzeyli geri çağrılarda önbellek bildirimleri tetikleyebilir. Öğe düzeyli bir geri çağrı eklerken filtre parametresinde bölge işlemleri belirlemek özel bir durumdur.

'add item-level notification callback for item "TestKey"
'trigger notification with AddItem and ReplaceItem operations
Dim ndItemUpdateOps As DataCacheNotificationDescriptor
ndItemUpdateOps = _
    myTestCache.AddItemLevelCallback("TestKey", _
    (DataCacheOperations.AddItem Or DataCacheOperations.ReplaceItem), _
    AddressOf myItemLvlUpdateDelegate)
//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);

Ayrıca bkz.

Kavramlar

Hata Bildirimi Geri Çağırması Ekleme (Windows Server AppFabric Önbelleğe Alma)
Önbellek Bildirimi Geri Çağırmasını Kaldırma (Windows Server AppFabric Önbelleğe Alma)
Önbellek Bildirim Yöntemleri (Windows Server AppFabric Önbelleğe Alma)
Windows Server AppFabric Önbelleğe Alma Özelliklerini Yönetmek için Windows PowerShell Kullanma

  2011-12-05