我與瞬態故障工作處理應用程序塊(TFHAB)與Azure數據庫交互時,定義重試的政策。我不知道是否有一種方法來調用,以規劃和處理可能的生產場景節流響應?如何使用Azure數據庫模擬瞬態錯誤?
我可以在一個循環中放置一條SQL命令並運行它直到我調用一個響應,但據推測這不被認爲是「最佳實踐」?
任何人都可以提出一些切實可行的方法,使我可以測試我的短暫的錯誤處理邏輯是什麼?
我與瞬態故障工作處理應用程序塊(TFHAB)與Azure數據庫交互時,定義重試的政策。我不知道是否有一種方法來調用,以規劃和處理可能的生產場景節流響應?如何使用Azure數據庫模擬瞬態錯誤?
我可以在一個循環中放置一條SQL命令並運行它直到我調用一個響應,但據推測這不被認爲是「最佳實踐」?
任何人都可以提出一些切實可行的方法,使我可以測試我的短暫的錯誤處理邏輯是什麼?
看看結合Testing Transient errors in Azure和error codes returned by Windows Azure SQL Database列表,看看你是否可以嘲笑你正在測試的行爲。除了單元測試我不認爲你要能夠「模擬」錯誤,因爲這些錯誤是從SQL通過TDS協議,這將是難以攔截的到來。您的需求將是您可以注入模擬器的應用程序塊分支的一個很好的候選人。
我設法開發了一些代碼,使您可以在Azure SQL數據庫中可靠地生成瞬時錯誤。您可以在以下位置找到代碼:https://github.com/robdmoore/SQLAzureTransientDemo
我向您推薦的是依賴注入:)爲了詳細說明,您的高級客戶端代碼不應該對azure產生直接依賴關係,請將客戶端SDK放在接口後面並將該接口作爲依賴於您的更高級別的客戶端代碼。將生產代碼的實際sdk作爲接口實現傳遞,併爲測試傳遞接口的測試實現,您可以在其中返回任何錯誤代碼或響應。