LimitedAttemptsStrategyModifier Class
- Namespace
- Kampute.HttpClient.RetryManagement.Strategies.Modifiers
- Assembly
- Kampute.HttpClient.dll
Definition
A retry strategy that limits the number of retry attempts to a specified maximum.
public sealed class LimitedAttemptsStrategyModifier : IRetryStrategy- Inheritance
- object
- LimitedAttemptsStrategyModifier
- Implements
Remarks
This class wraps another strategy and enforces a maximum number of attempts. Once the limit is reached, no further retries are suggested.
Constructors
LimitedAttemptsStrategyModifier(IRetryStrategy, uint)
Initializes a new instance of the LimitedAttemptsStrategyModifier class with a specified source provider and maximum number of attempts.
public LimitedAttemptsStrategyModifier(IRetryStrategy source, uint maxAttempts)Parameters
sourceIRetryStrategy- The underlying retry strategy.
maxAttemptsuint- The maximum number of retry attempts before giving up.
Exceptions
- ArgumentNullException
- Thrown if
sourceisnull.
Properties
MaxAttempts
Gets the maximum number of retry attempts before giving up.
public uint MaxAttempts { get; }Property Value
- uint
- The maximum number of retry attempts before giving up.
Source
Gets the underlying retry strategy, to which the specified maximum number of retry attempts is applied as a limit.
public IRetryStrategy Source { get; }Property Value
- IRetryStrategy
- The underlying IRetryStrategy, to which the specified maximum number of retry attempts is applied as a limit.
Methods
TryGetRetryDelay(TimeSpan, uint, out TimeSpan)
Calculates the delay for the next retry attempt, enforcing the maximum attempt limit.
public bool TryGetRetryDelay(TimeSpan elapsed, uint attempts, out TimeSpan delay)Parameters
elapsedTimeSpan- The total time elapsed since the start of retry attempts.
attemptsuint- The number of retry attempts made so far.
delayTimeSpan- When this method returns, contains the calculated delay for the next retry attempt. This parameter is passed uninitialized.
Returns
Extension Methods
| ToBackoffStrategy(this IRetryStrategy) | Converts an IRetryStrategy into a BackoffStrategy, creating a factory capable of producing schedulers based on the provided strategy. |
| ToScheduler(this IRetryStrategy) | Converts an IRetryStrategy into a RetryScheduler, creating a scheduler instance based on the provided strategy. |
| WithJitter(this IRetryStrategy, double) | Enhances a retry strategy with jitter to add randomness to the retry delay. |
| WithMaxAttempts(this IRetryStrategy, uint) | Enhances a retry strategy with a maximum number of retry attempts. |
| WithTimeout(this IRetryStrategy, TimeSpan) | Enhances a retry strategy with a timeout, limiting the total duration allowed for retry attempts. |
