В каталоге samples собраны небольшие сценарии, которые показывают библиотеку в действии.
Каждый пример можно запускать отдельно и использовать как отправную точку для собственных экспериментов.
Из корня репозитория:
oscript samples/ПримерОтказоустойчивости.osПо тому же шаблону можно запускать любой другой файл из каталога samples.
Если открываешь библиотеку впервые, лучше идти от коротких сценариев к составным:
- ПримерСтратегииЗапасногоСценария.os показывает самый простой запасной результат вместо ошибки.
- ПримерСтратегииПовтора.os показывает повтор операции, которая сначала возвращает промежуточный результат.
- ПримерСтратегииТаймаута.os показывает ограничение времени выполнения.
- ПримерОтказоустойчивости.os показывает несколько стратегий в одном пайплайне.
| Стратегия | Что показывает | Файлы |
|---|---|---|
ЗапаснойСценарий |
Резервный результат вместо ошибки и условие, которое разрешает запасной сценарий только для выбранных ошибок. | Базовый пример С условием |
Повтор |
Повтор проверки, пока сервис возвращает промежуточный результат. | Пример повтора |
Предохранитель |
Размыкание после ошибок, оценка процента ошибок в окне и закрытие после нескольких успешных пробных вызовов. | Базовый пример Оконная оценка Пробные вызовы |
ОграничениеПараллелизма |
Ограничение числа одновременно выполняющихся операций, очередь ожидания и максимальное ожидание свободного слота. | Базовый пример Ожидание слота |
Таймаут |
Базовое ограничение времени ожидания и кооперативное завершение операции через общий СигналПрерыванияОперации. |
Базовый пример С сигналом прерывания |
ОграничениеВызовов |
Лимит вызовов в интервале, обработчик превышения лимита и равномерное распределение запросов. | Базовый пример Равномерное распределение |
- ПримерОтказоустойчивости.os показывает, как
Повтор,ПредохранительиЗапаснойСценарийработают вместе: первый запуск возвращает резервный результат, а после ожидания следующий вызов завершается успешно. - ПримерПайплайнаИзГотовыхСтратегий.os показывает сборку пайплайна из заранее настроенных объектов стратегий.
- ПримерАсинхронногоЗапуска.os показывает
ЗапуститьАсинх()и получение результата черезПолучить(). - ПримерАсинхроннойОбработкиОшибки.os показывает обработку ошибки асинхронной операции через
Поймать(). - ПримерЛямбдаОперации.os показывает операцию, заданную лямбда-выражением.
- ПримерЛямбдаОбработчика.os показывает обработчик стратегии, заданный лямбда-выражением.
- ПримерКастомнойСтратегии.os показывает подключение собственной стратегии через
ДобавитьСтратегию(...).
- Классы/НестабильныйСервис.os имитирует сервис, который некоторое количество раз завершается ошибкой, а затем начинает отвечать успешно.
- Классы/МедленныйСервис.os имитирует сервис с искусственной задержкой, удобный для примеров со стратегией таймаута.
- Классы/ПрерываемыйСервис.os показывает кооперативное прерывание длительной операции через общий
СигналПрерыванияОперации. - Классы/СервисПроверкиГотовности.os возвращает промежуточный результат
НЕ ГОТОВО, чтобы показать повтор по результату, а не только по исключению. - Классы/ПрефикснаяСтратегия.os показывает минимальную пользовательскую стратегию с использованием
АдаптерОперацииОтказоустойчивости.