0
根據this MSDN頁面「Put通過將版本信息作爲可選參數支持樂觀併發性;如果要替換的對象具有相同版本,則放置成功。」如何在樂觀併發模型下處理AppFabric中的數據爭用?
當版本不同時,什麼是一個好的解決方案?緩存客戶端是一個WCF服務。
根據this MSDN頁面「Put通過將版本信息作爲可選參數支持樂觀併發性;如果要替換的對象具有相同版本,則放置成功。」如何在樂觀併發模型下處理AppFabric中的數據爭用?
當版本不同時,什麼是一個好的解決方案?緩存客戶端是一個WCF服務。
如果版本不同,則表示另一個客戶端已經進入並更新緩存的對象。您可以通過捕獲DataCacheException
來檢測此問題,該問題將從您的調用中拋出,並檢查ErrorCode
與DataCacheErrorCode
的枚舉 - CacheItemVersionMismatch
是要測試的特定條目。捕獲此錯誤表明,您的當前客戶端正在使用的緩存項目已過時,您應該在嘗試製作您的客戶端之前從客戶端獲取最新版本(您可能想也可能不想向用戶顯示)再次改變。
這就是爲什麼在樂觀併發場景中,您希望獲取緩存對象,進行更改並儘快將其返回緩存 - 您不希望持有任何類型的長版本運行過程或者你開始看到這些問題。