Я использую несколько политик, ограничивающих скорость в моем приложении .NET, и я хочу определить, какая конкретная политика вызвала отклонение запроса (HTTP 429). Это важно для целей регистрации и метрик.limiterOptions.AddPolicy("InternalServicePolicy", httpContext =>
{
return RateLimitPartition.GetFixedWindowLimiter("InternalServicePolicy",
_ => new FixedWindowRateLimiterOptions()
{
PermitLimit = rateLimitingOptions.InternalServicePolicyOptions.PermitLimit,
Window = TimeSpan.FromSeconds(rateLimitingOptions.InternalServicePolicyOptions.TimePeriod),
AutoReplenishment = true,
QueueLimit = 0,
});
});
limiterOptions.AddPolicy("ThirdPartyPolicy", httpContext =>
{
return RateLimitPartition.GetFixedWindowLimiter("ThirdPartyPolicy",
_ => new FixedWindowRateLimiterOptions()
{
PermitLimit = rateLimitingOptions.ThirdPartyPolicyOptions.PermitLimit,
Window = TimeSpan.FromSeconds(rateLimitingOptions.ThirdPartyPolicyOptions.TimePeriod),
AutoReplenishment = true,
QueueLimit = 0,
});
});
limiterOptions.OnRejected = async (context, cancellationToken) =>
{
// Metrics and logging
context.HttpContext.Response.StatusCode = StatusCodes.Status429TooManyRequests;
await context.HttpContext.Response.WriteAsync(
"Too many requests. Please try again later. " +
"Read more about our rate limits at https://example.org/docs/ratelimiting.", cancellationToken: cancellationToken);
};
Подробнее здесь: https://stackoverflow.com/questions/794 ... -errors-in
Как идентифицировать отклоненное полицинам при обработке 429 ошибок ограничения скорости в .NET? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Angular HttpClient Interceptor: Ошибка 429 Возвращает статус 0 вместо 429
Anonymous » » в форуме Javascript - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-