Table of Contents

Class RetryCalculator

Namespace
TypeSafe.AI.Sdk
Assembly
TypeSafe.AI.Sdk.dll

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

int

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

attempt int
headers HttpResponseHeaders
policy RetryPolicy
random Func<double>

Returns

int

IsRetryableStatus(int, RetryPolicy?)

Whether the policy retries an HTTP status code.

public static bool IsRetryableStatus(int status, RetryPolicy? policy = null)

Parameters

status int
policy RetryPolicy

Returns

bool

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

headers HttpResponseHeaders
now DateTimeOffset?

Returns

int?

SleepAsync(int, CancellationToken)

Wait milliseconds, throwing OperationCanceledException on cancellation.

public static Task SleepAsync(int milliseconds, CancellationToken cancellationToken = default)

Parameters

milliseconds int
cancellationToken CancellationToken

Returns

Task