Back to Polly

About Polly.RateLimiting

src/Polly.RateLimiting/README.md

8.6.61.3 KB
Original Source

About Polly.RateLimiting

The Polly.RateLimiting package adopts the .NET Rate Limiting APIs for Polly scenarios.

  • It exposes the AddRateLimiter extension methods for ResiliencePipelineBuilder.
  • It exposes the AddConcurrencyLimiter convenience extension methods for ResiliencePipelineBuilder.
  • It exposes the RateLimiterRejectedException class to notify the caller that the operation was rate limited.

See the documentation for more details.

Usage

<!-- snippet: rate-limiter -->
cs
// Add rate limiter with default options.
// See https://www.pollydocs.org/strategies/rate-limiter#defaults for defaults.
new ResiliencePipelineBuilder()
    .AddRateLimiter(new RateLimiterStrategyOptions());

// Create a rate limiter to allow a maximum of 100 concurrent executions and a queue of 50.
new ResiliencePipelineBuilder()
    .AddConcurrencyLimiter(100, 50);

// Create a rate limiter that allows 100 executions per minute.
new ResiliencePipelineBuilder()
    .AddRateLimiter(new SlidingWindowRateLimiter(
        new SlidingWindowRateLimiterOptions
        {
            PermitLimit = 100,
            SegmentsPerWindow = 4,
            Window = TimeSpan.FromMinutes(1)
        }));
<!-- endSnippet -->