Exemplo n.º 1
0
    static Func <ErrorContext, RecoverabilityAction> CreatePolicy(int maxImmediateRetries = 2, int maxDelayedRetries = 2, TimeSpan?delayedRetryDelay = null, HashSet <Type> unrecoverableExceptions = null)
    {
        var failedConfig = new FailedConfig("errorQueue", unrecoverableExceptions ?? new HashSet <Type>());
        var config       = new RecoverabilityConfig(new ImmediateConfig(maxImmediateRetries), new DelayedConfig(maxDelayedRetries, delayedRetryDelay.GetValueOrDefault(TimeSpan.FromSeconds(2))), failedConfig);

        return(context => CustomizedRecoverabilityPolicy.MyCustomRetryPolicy(config, context));
    }
        /// <summary>
        /// Creates a new recoverability configuration.
        /// </summary>
        /// <param name="immediateConfig">The immediate retries configuration.</param>
        /// <param name="delayedConfig">The delayed retries configuration.</param>
        /// <param name="failedConfig">The failed retries configuration.</param>
        public RecoverabilityConfig(ImmediateConfig immediateConfig, DelayedConfig delayedConfig, FailedConfig failedConfig)
        {
            Guard.AgainstNull(nameof(immediateConfig), immediateConfig);
            Guard.AgainstNull(nameof(delayedConfig), delayedConfig);
            Guard.AgainstNull(nameof(failedConfig), failedConfig);

            Immediate = immediateConfig;
            Delayed = delayedConfig;
            Failed = failedConfig;
        }
        /// <summary>
        /// Creates a new recoverability configuration.
        /// </summary>
        /// <param name="immediateConfig">The immediate retries configuration.</param>
        /// <param name="delayedConfig">The delayed retries configuration.</param>
        /// <param name="failedConfig">The failed retries configuration.</param>
        public RecoverabilityConfig(ImmediateConfig immediateConfig, DelayedConfig delayedConfig, FailedConfig failedConfig)
        {
            Guard.AgainstNull(nameof(immediateConfig), immediateConfig);
            Guard.AgainstNull(nameof(delayedConfig), delayedConfig);
            Guard.AgainstNull(nameof(failedConfig), failedConfig);

            Immediate = immediateConfig;
            Delayed   = delayedConfig;
            Failed    = failedConfig;
        }