在今天的客戶,我們分析了前周的日誌,我們發現有關Windows Azure的服務總線隊列了以下問題:的Windows Azure服務總線隊列:節流和黃玉
請求被終止,因爲實體正在被扼殺。 請稍候10秒後重試。
驗證碼後,我告訴他們使用瞬態故障漢鼎應用程序塊(TOPAZ),以實現重試政策像這樣的:
var retryStrategy = new Incremental(5, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2));
var retryPolicy = new RetryPolicy<ServiceBusTransientErrorDetectionStrategy>(retryStrategy);
客戶回答:
「啊,這很好,所以它也會處理這樣一個事實,即它應該在受到限制時等待 10秒鐘。」
想想吧,我從來沒有證實過這是否是這種情況。我一直認爲這是事實。在Microsoft.Practices.EnterpriseLibrary.WindowsAzure.TransientFaultHandling程序集中,我查找了一些代碼,在節流的情況下會等待10秒鐘,但沒有找到任何東西。
這是否意味着TOPAZ不足以創建彈性應用程序?這應該結合一些自定義代碼來處理限制(例如,如果發生特定異常,請等待10秒鐘)?