Как сохранить токены RateLimiter?C#

Место общения программистов C#
Ответить
Anonymous
 Как сохранить токены RateLimiter?

Сообщение Anonymous »

Я использую .Net RateLimiting и, в частности, TokenBucketRateLimiter. Пример:

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»