2009-10-16 42 views
4

有誰有一組最佳實踐,他們想與大家分享關於Azure的WorkerRole錯誤處理?我特別想提一下如何處理持續性錯誤情況(即訪問外部資源(如Web服務)暫時停止幾個小時)的任何想法。謝謝.....我需要天青WorkerRole錯誤處理指導

回答

2

你可以看看Exception Handling Action Policies App Block for .NET此情況下(curcuit斷路器或簡單的睡眠和重試,永遠可以做的工作)。

本申請塊是在場景中,其中該分佈式系統的元件之間的連接是不可靠的和受各種故障有幫助的。其中一個優點是可以對整個應用程序的這些操作策略進行配置,然後通過Inversion of Control將其注入適當的類中。

例如:

var policy = ActionPolicy 
    .Handle<CommunicationException>() 
    .CircuitBreaker(1.Minutes(), 2); 

var recordSet = policy 
    .Get(() => remoteRepository.GetRecords(someCriteria)); 

Lokad.Cloud(爲天青)開源項目使用來自Lokad共享庫相同的策略。

注意:動作策略與Azure存儲的RetryPolicies兼容:

var policy = ActionPolicy.Handle<StorageServerException>().Retry(5); 
queueService.RetryPolicy = policy.Do;