Пример #1
0
        protected IEasyCachingProvider CreateDecoratedProvider() =>
        ServiceBuilders.CreateFakeProvider(options =>
        {
            options.ProviderFactory = CreateProvider;

            var circuitBreakerParameters = new CircuitBreakerParameters(
                exceptionsAllowedBeforeBreaking: 1,
                durationOfBreak: TimeSpan.FromMinutes(1));

            options.DecorateWithCircuitBreaker(
                initParameters: circuitBreakerParameters,
                executeParameters: circuitBreakerParameters,
                exception => exception is InvalidOperationException);
        });
Пример #2
0
        public static IEasyCachingProvider CreateDecoratedProvider(
            Func <IEasyCachingProvider> providerFactory, IEasyCachingProvider fallbackProvider) =>
        ServiceBuilders.CreateFakeProvider(options =>
        {
            options.ProviderFactory = providerFactory;

            var circuitBreakerParameters = new CircuitBreakerParameters(
                exceptionsAllowedBeforeBreaking: 1,
                durationOfBreak: TimeSpan.FromMinutes(1));

            options
            .DecorateWithCircuitBreaker(
                initParameters: circuitBreakerParameters,
                executeParameters: circuitBreakerParameters,
                exception => exception is InvalidOperationException)
            .DecorateWithFallback(
                (_, __) => fallbackProvider,
                exception => exception is InvalidOperationException);
        });