Class RetryCalculator
Retry delay calculation and cancellable waits. Mirrors JS retry.ts.
public static class RetryCalculator
- Inheritance
-
RetryCalculator
- Inherited Members
Fields
DefaultTimeoutMs
Default timeout per attempt in milliseconds.
public const int DefaultTimeoutMs = 10000
Field Value
Methods
DelayMs(int, HttpResponseHeaders?, RetryPolicy?, Func<double>?)
Calculate the delay in milliseconds for a zero-based retry attempt. Uses an allowed server delay; otherwise uses capped exponential backoff with jitter.
public static int DelayMs(int attempt, HttpResponseHeaders? headers = null, RetryPolicy? policy = null, Func<double>? random = null)
Parameters
attemptintheadersHttpResponseHeaderspolicyRetryPolicyrandomFunc<double>
Returns
IsRetryableStatus(int, RetryPolicy?)
Whether the policy retries an HTTP status code.
public static bool IsRetryableStatus(int status, RetryPolicy? policy = null)
Parameters
statusintpolicyRetryPolicy
Returns
ParseRetryAfter(HttpResponseHeaders, DateTimeOffset?)
Parse retry-after-ms or Retry-After into milliseconds, preferring retry-after-ms.
Returns null when neither header contains a valid delay.
public static int? ParseRetryAfter(HttpResponseHeaders headers, DateTimeOffset? now = null)
Parameters
headersHttpResponseHeadersnowDateTimeOffset?
Returns
- int?
SleepAsync(int, CancellationToken)
Wait milliseconds, throwing OperationCanceledException on cancellation.
public static Task SleepAsync(int milliseconds, CancellationToken cancellationToken = default)
Parameters
millisecondsintcancellationTokenCancellationToken