Class RateLimitTracker
- Namespace
- RateLimitClient
- Assembly
- RateLimitClient.dll
Tracks rate limit state and calculates delays needed for traffic shaping.
public class RateLimitTracker
- Inheritance
-
objectRateLimitTracker
Constructors
RateLimitTracker(RateLimitHandlerOptions)
public RateLimitTracker(RateLimitHandlerOptions options)
Parameters
optionsRateLimitHandlerOptions
Methods
CalculateDelay(Uri)
Calculates the delay needed before the next request can be sent.
public TimeSpan CalculateDelay(Uri requestUri)
Parameters
requestUriUri
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
requestUriUriThe request URI
partitionKeystringThe 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
headersRateLimitHeadersrequestUriUri
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
requestUriUriThe request URI
partitionKeystringThe partition key (e.g., user ID from token)
cancellationTokenCancellationTokenCancellation 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
requestUriUricancellationTokenCancellationToken
Returns
- Task