Table of Contents

Class RateLimitTracker

Namespace
RateLimitClient
Assembly
RateLimitClient.dll

Tracks rate limit state and calculates delays needed for traffic shaping.

public class RateLimitTracker
Inheritance
object
RateLimitTracker

Constructors

RateLimitTracker(RateLimitHandlerOptions)

public RateLimitTracker(RateLimitHandlerOptions options)

Parameters

options RateLimitHandlerOptions

Methods

CalculateDelay(Uri)

Calculates the delay needed before the next request can be sent.

public TimeSpan CalculateDelay(Uri requestUri)

Parameters

requestUri Uri

Returns

TimeSpan

CalculateDelay(Uri, string)

Calculates the delay needed before the next request can be sent for a specific partition.

public TimeSpan CalculateDelay(Uri requestUri, string partitionKey)

Parameters

requestUri Uri

The request URI

partitionKey string

The partition key (e.g., user ID from token)

Returns

TimeSpan

Clear()

Clears all tracked rate limit state.

public void Clear()

GetCurrentState()

Gets current state for diagnostics.

public IReadOnlyDictionary<string, RateLimitState> GetCurrentState()

Returns

IReadOnlyDictionary<string, RateLimitState>

UpdateFromHeaders(RateLimitHeaders, Uri)

Updates the rate limit state based on response headers.

public void UpdateFromHeaders(RateLimitHeaders headers, Uri requestUri)

Parameters

headers RateLimitHeaders
requestUri Uri

WaitForRateLimitAsync(Uri, string, CancellationToken)

Waits for the calculated delay before allowing the request to proceed for a specific partition.

public Task WaitForRateLimitAsync(Uri requestUri, string partitionKey, CancellationToken cancellationToken)

Parameters

requestUri Uri

The request URI

partitionKey string

The partition key (e.g., user ID from token)

cancellationToken CancellationToken

Cancellation token

Returns

Task

WaitForRateLimitAsync(Uri, CancellationToken)

Waits for the calculated delay before allowing the request to proceed.

public Task WaitForRateLimitAsync(Uri requestUri, CancellationToken cancellationToken)

Parameters

requestUri Uri
cancellationToken CancellationToken

Returns

Task