Мне нужно руководство по обработке ошибок рабочей роли Azure
-
21-09-2019 - |
Вопрос
Есть ли у кого-нибудь рекомендации по обработке ошибок рабочей роли Azure, которыми они хотели бы поделиться?Мне особенно хотелось бы получить любые ваши идеи о том, как справиться с постоянными ошибками (т.когда доступ к внешнему ресурсу, например веб-сервису, временно недоступен на несколько часов).Спасибо.....
Решение
Вы можете проверить Блокировка приложения политик действий обработки исключений для .NET в этом случае (выключатель цепи или простой режим сна и повтора могут сработать).
Этот прикладной блок оказался полезен в сценариях, где связь между элементами распределенной системы ненадежна и подвержена различным сбоям.Одним из преимуществ является то, что такие политики действий для всего приложения можно настроить на месте, а затем внедрить в соответствующие классы через Инверсия контроля.
Например:
var policy = ActionPolicy
.Handle<CommunicationException>()
.CircuitBreaker(1.Minutes(), 2);
var recordSet = policy
.Get(() => remoteRepository.GetRecords(someCriteria));
Локад.Облако (для Azure) проект с открытым исходным кодом использует те же политики, что и общие библиотеки Lokad.
Примечание:Политики действий совместимы с RetryPolicies хранилища Azure:
var policy = ActionPolicy.Handle<StorageServerException>().Retry(5);
queueService.RetryPolicy = policy.Do;