銷售: 1-800-867-1380

Azure 受管理快取服務的通知

更新日期: 2014年9月

note附註
如需為應用程式選擇正確 Azure 快取提供項目的相關指引,請參閱 我適合使用哪個 Azure 快取服務?

Microsoft Azure 快取 提供快取通知,可讓您的應用程式接收已命名快取上發生之各種快取操作的非同步通知。快取通知也會提供本機快取物件的自動失效。

若要接收非同步快取通知,請在您的應用程式中加入快取通知回呼。當您加入回呼時,必須定義觸發快取通知的快取操作類型,以及發生指定的操作時應呼叫您的應用程式中的哪個方法。具名快取需要選擇加入和啟用快取通知。

note附註
標準版和進階版快取提供項目中包括通知,而基本版中則未包括。如需詳細資訊,請參閱 Azure 受管理快取服務的快取提供項目.

這些快取操作是由 DataCacheOperations 類別的成員所定義。

當區域上發生下列快取操作時,您的應用程式可以接收快取通知:

當快取物件 (快取中的項目) 上發生下列快取操作時,您的應用程式可能會收到快取通知。

note附註
透過它們本身,這些項目操作不需依賴是否在區域中發生。您可以選擇將回呼的通知範圍限制到特定區域。這在本文件的<通知範圍>一節中討論。

視活動與您的應用程式需求而定,您可能不想收到快取中所有物件與區域的事件通知。您可以將通知範圍從快取等級縮小到區域等級和項目等級。加入回呼時選取的通知範圍會大幅影響您將收到的快取通知。

在快取等級,當快取中的任何物件或區域上發生快取操作時,您的應用程式可能都會收到快取通知。在區域等級,只有當單一區域及其中的物件上發生快取操作時,您的應用程式才會收到快取通知。在項目等級,只有當單一物件上發生快取操作時,您的應用程式才會收到快取通知。

若要指定快取範圍,請選擇下列三個方法的其中一個,來加入快取通知回呼:

  • AddCacheLevelCallback:若想要收到在所有區域與項目上發生之區域及項目相關快取操作的快取通知。

  • AddRegionLevelCallback:若想要收到在單一特定區域上發生之區域及項目相關快取操作的快取通知。

  • AddItemLevelCallback:若想要收到在單一特定項目上發生之項目相關快取操作的快取通知。

在單一區域的範圍中,快取用戶端會收到依序傳來的通知。例如,假設您已建立名為 RegionA 的區域。因為放在該快取區域中的所有資料都限制為相同區域,與 RegionA 相關的所有快取操作(區域等級與通知範圍) 都會以適當的順序 (與彼此相關) 送達快取用戶端。在其他快取主機上發生的區域與項目快取操作,則不一定會以適當的順序 (與 RegionA 中發生的操作相關) 送達。

為考量效能,無法確保牽涉到未儲存在相同區域之多個區域或物件的通知順序。

項目事件的版本資訊 (格式為 DataCacheItemVersion 物件) 會透過 version 參數傳遞給快取通知叫用的方法。此 DataCacheItemVersion 物件對應到觸發項目事件之物件的版本。透過使用 CompareTo 方法,您可以比較版本以判斷哪個快取操作先發生。

note附註
只有比較以相同索引鍵指定之相同項目的版本時,版本比較才有意義。無法透過比較不同索引鍵的版本來推算順序;CompareTo 方法可能會傳回結果,但只有對具有相同索引鍵的版本才有效。

當您使用快取通知時,應用程式會定期檢查快取,判斷是否有新的通知可用。此檢查間隔稱為輪詢間隔,預設是 300 秒。頻繁寫入的應用程式可能想要為此間隔設定更小的值,但是對於為經常變更的快取而言,較大的間隔會比較好。300 秒的預設值對於大多數的一般快取而言是理想選擇。

輪詢間隔是在應用程式組態檔中指定,單位為秒。若要指定特定間隔,您可以使用應用程式組態檔之 clientNotifications 元素的 pollInterval 屬性。您也可以使用程式設計方式,以 DataCacheFactoryConfiguration 物件的 NotificationProperties 屬性來指定輪詢間隔。

Microsoft Azure 快取 只能在記憶體中保留特定數量的快取操作。在處理完通知佇列中的通知之前,某些快取用戶端可能不會收到通知。當資料因為快取失敗而遺失時,快取用戶端也可能遺漏通知。在這些情況下,快取用戶端可以使用失敗通知來確認它已漏些某些快取通知。您的應用程式可以透過使用 AddFailureNotificationCallback 方法,來加入回呼以接收失敗通知。如需詳細資訊,請參閱<How to: Add a Failure Notification Callback>。

通知遺失與快取遺失之間有很重要的差異。若應用程式遺失一或多個通知,它可以透過失敗通知得知該遺失情況。若刪除了整個快取時,當您下次在快取無法與快取端點連線時嘗試使用快取時,快取用戶端將會擲回例外狀況。通知不會報告已命名快取建立或刪除此類快取事件。如果在註冊通知之後刪除已命名快取,則只會停止接收通知。系統不可能會區分快取不存在和操作無法在已命名快取上執行的情況。

note附註
快取通知只會報告叢集中區域與快取項目上發生的資料相關變更,而不會報告叢集本身的事件。

通知會在快取的 [設定] 索引標籤中的 [管理入口網站] 的已命名快取層級中設定。通知的預設設定為 [停用]

Windows Azure 快取服務的快取通知

不需要修改應用程式組態設定就可以加入回呼以接收快取通知。您可以使用應用程式組態設定來指定特定的輪詢間隔。根據預設值,輪詢間隔是 300 秒。若要指定不同的間隔,請在 XML 型應用程式組態檔中使用 clientNotification 元素來指定,或以程式設計方式使用 DataCacheFactoryConfiguration 物件的 NotificationsProperties 屬性來指定。

啟用快取通知之後,有三個與使用快取通知相關的工作:加入快取通知回呼、加入失敗通知回呼、移除快取通知回呼。本文件的其餘部分將說明這些工作的程序。

另請參閱

本文對您有任何幫助嗎?
(剩餘 1500 個字元)
感謝您提供意見
顯示:
© 2014 Microsoft