Должен ли я реализовать как политику повторных попыток, так и автоматический выключатель для вложенных методов, вызывающ ⇐ C#
Должен ли я реализовать как политику повторных попыток, так и автоматический выключатель для вложенных методов, вызывающ
У меня есть многоуровневое приложение, в котором Метод1 вызывает Метод2. Внутри Method2 я взаимодействую с внешними ресурсами, такими как Redis и Event Hub. Я уже реализовал политику повтора для Method1.
Теперь я рассматриваю возможность внедрения шаблона автоматического выключателя для повышения отказоустойчивости. Моя главная забота — где реализовать этот шаблон автоматического выключателя. Должно ли это быть на уровне Method2, где осуществляется доступ к внешним ресурсам?
Кроме того, следует ли мне реализовать другую политику повтора специально в Method2, или это будет излишним, поскольку в Main уже есть политика повтора, вызывающая Method1 >?
Вот упрощенная схема иерархии вызовов для контекста:
с использованием Полли; использование Polly.CircuitBreaker; использование системы; классная программа { // Определить политику автоматического выключателя как статический элемент частный статический только для чтения CircuitBreakerPolicy CircuitBreakerPolicy = Политика .Handle() .CircuitBreaker(2, TimeSpan.FromMinutes(1)); static void Main(string[] args) { // Определить политику повтора вар retryPolicy = Политика .Handle() .Повторить(3); // Обернуть политику повтора вокруг метода 1 пытаться { retryPolicy.Execute(Метод1); } поймать (Исключение e) { Console.WriteLine($"Не удалось выполнить метод 1. Причина: {e.Message}"); } } статическая пустота Метод1() { Console.WriteLine("Выполнение метода1"); //Другие обращения к внешним ресурсам Метод2(); } статическая пустота Метод2() { Console.WriteLine("Выполнение метода2"); CircuitBreakerPolicy.Execute(() => { // Имитируем вызов внешнего ресурса Console.WriteLine("Вызов внешних ресурсов, таких как Redis, Event Hub и т. д."); // Раскомментируем для имитации сбоя // выдаем новое исключение("Имитируемый сбой внешнего ресурса"); }); } } Мне хотелось бы услышать некоторые рекомендации или опыт решения этой проблемы.
У меня есть многоуровневое приложение, в котором Метод1 вызывает Метод2. Внутри Method2 я взаимодействую с внешними ресурсами, такими как Redis и Event Hub. Я уже реализовал политику повтора для Method1.
Теперь я рассматриваю возможность внедрения шаблона автоматического выключателя для повышения отказоустойчивости. Моя главная забота — где реализовать этот шаблон автоматического выключателя. Должно ли это быть на уровне Method2, где осуществляется доступ к внешним ресурсам?
Кроме того, следует ли мне реализовать другую политику повтора специально в Method2, или это будет излишним, поскольку в Main уже есть политика повтора, вызывающая Method1 >?
Вот упрощенная схема иерархии вызовов для контекста:
с использованием Полли; использование Polly.CircuitBreaker; использование системы; классная программа { // Определить политику автоматического выключателя как статический элемент частный статический только для чтения CircuitBreakerPolicy CircuitBreakerPolicy = Политика .Handle() .CircuitBreaker(2, TimeSpan.FromMinutes(1)); static void Main(string[] args) { // Определить политику повтора вар retryPolicy = Политика .Handle() .Повторить(3); // Обернуть политику повтора вокруг метода 1 пытаться { retryPolicy.Execute(Метод1); } поймать (Исключение e) { Console.WriteLine($"Не удалось выполнить метод 1. Причина: {e.Message}"); } } статическая пустота Метод1() { Console.WriteLine("Выполнение метода1"); //Другие обращения к внешним ресурсам Метод2(); } статическая пустота Метод2() { Console.WriteLine("Выполнение метода2"); CircuitBreakerPolicy.Execute(() => { // Имитируем вызов внешнего ресурса Console.WriteLine("Вызов внешних ресурсов, таких как Redis, Event Hub и т. д."); // Раскомментируем для имитации сбоя // выдаем новое исключение("Имитируемый сбой внешнего ресурса"); }); } } Мне хотелось бы услышать некоторые рекомендации или опыт решения этой проблемы.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как политики повторных попыток Polly указывают на превышение количества повторных попыток?
Anonymous » » в форуме C# - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как политики повторных попыток Polly указывают на превышение количества повторных попыток?
Anonymous » » в форуме C# - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как я могу реализовать политику повторных попыток с помощью httpx в Python?
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-