Using Microsoft.Extensions.Http.Resilience
is it possible to use precise RateLimiter
options, such as SlidingWindowRateLimiter
, with the AddStandardResilienceHandler
. Alternatively apply the defaults from AddStandardResilienceHandler
to a custom AddResilienceHandler
definition for everything else other than the RateLimiter
part?
Ideally I’d like to use the best practice defaults that are built-in to the resilience library, but override the RateLimiter
part for specific API imposed limits.
For example I’d like to combine:
builder.AddStandardResilienceHandler(static options => {
// Either apply RateLimiter options from below
});
with RateLimiter
options such as:
services.AddHttpClient(Constants.StarshipitHttpClient)
.AddResilienceHandler(Constants.StarshipitHttpClient, static builder =>
{
builder.AddRateLimiter(new SlidingWindowRateLimiter(
new SlidingWindowRateLimiterOptions
{
PermitLimit = 2,
Window = TimeSpan.FromSeconds(1),
QueueLimit = int.MaxValue,
}
));
// Or add other default resiliency options from AddStandardResilienceHandler above
});
Does anyone know how to achieve this?