Код: Выделить всё
services.AddRateLimiter(limiterOptions =>
{
limiterOptions.AddPolicy(userPolicyName, context =>
{
string username = Utils.getUsername(context);
return RateLimitPartition.GetTokenBucketLimiter
(username , _ =>
new TokenBucketRateLimiterOptions
{
TokenLimit = myOptions.TokenLimit,
QueueProcessingOrder = QueueProcessingOrder.OldestFirst,
QueueLimit = 0,
ReplenishmentPeriod = TimeSpan.FromDays(myOptions.ReplenishmentPeriod),
TokensPerPeriod = myOptions.ReplenishmentPeriod,
AutoReplenishment = myOptions.AutoReplenishment
});
});
});
Как изменить хранилище, используемое для токенов? Я бы предпочел использовать postgres для обеспечения устойчивости, если это возможно, но подойдет любой вид сохранения.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ter-tokens
Мобильная версия