Пример #1
0
        private static AsyncPolicy Create(string description, DataMoverSettings settings, ILogger logger)
        {
            var breaker = Policy
                          .Handle <Exception>()
                          .CircuitBreakerAsync(
                exceptionsAllowedBeforeBreaking: 5,
                durationOfBreak: TimeSpan.FromSeconds(3));

            var retry = Policy
                        .Handle <Exception>()
                        .WaitAndRetryAsync(Backoff.LinearBackoff(
                                               TimeSpan.FromSeconds(settings.RetryInitialDelaySeconds), settings.RetryCount),
                                           (exception, span, retryCount, context) =>
            {
                logger.LogError(
                    exception,
                    "{@EventType} {@Realm} {@TimeSpan} {@retryCount}",
                    "Retry",
                    description,
                    span,
                    retryCount);
            });

            return(Policy.WrapAsync(retry, breaker));
        }
Пример #2
0
 public DatabasePublisher(
     ILogger <DatabasePublisher> logger,
     PolicyFactory policyFactory,
     DataMoverSettings dataMoverSettings)
 {
     _logger            = logger;
     _policyFactory     = policyFactory;
     _dataMoverSettings = dataMoverSettings;
 }
 public SchemaCopier(
     DataMoverSettings dataMoverSettings,
     PolicyFactory policyFactory,
     ILogger <SchemaCopier> logger)
 {
     _dataMoverSettings = dataMoverSettings;
     _policyFactory     = policyFactory;
     _logger            = logger;
 }
Пример #4
0
 public SourceDataReader(PolicyFactory policyFactory, DataMoverSettings dataMoverSettings)
 {
     _policyFactory     = policyFactory;
     _dataMoverSettings = dataMoverSettings;
 }
Пример #5
0
 public PolicyFactory(DataMoverSettings settings, ILogger <PolicyFactory> logger)
 {
     SrcPolicy = Create("src", settings, logger);
     DstPolicy = Create("dst", settings, logger);
 }