Class RedisBasedRateLimiterV2
java.lang.Object
io.github.devlibx.easy.ratelimit.redis.RedisBasedRateLimiterV2
- All Implemented Interfaces:
IRateLimiter
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.github.devlibx.easy.ratelimit.IRateLimiter
IRateLimiter.NoOpRateLimiter -
Constructor Summary
ConstructorsConstructorDescriptionRedisBasedRateLimiterV2(RateLimiterConfig rateLimiterConfig, IMetrics metrics) -
Method Summary
Modifier and TypeMethodDescriptionvoidacquire()Acquires a permit from this RateLimiter, blocking until one is available.voidacquire(long permits) Acquires a specifiedpermitsfrom this RateLimiter, blocking until one is available.debug()voidstart()Start rate limitervoidstop()Stop rate limiterbooleantrySetRate(long rate) Initializes RateLimiter's state and stores config to Redis server.
-
Constructor Details
-
RedisBasedRateLimiterV2
-
-
Method Details
-
start
public void start()Description copied from interface:IRateLimiterStart rate limiter- Specified by:
startin interfaceIRateLimiter
-
trySetRate
public boolean trySetRate(long rate) Description copied from interface:IRateLimiterInitializes RateLimiter's state and stores config to Redis server. Params: mode – - rate mode rate – - rate rateInterval – - rate time interval rateIntervalUnit – - rate time interval unit Returns: true if rate was set and false otherwise- Specified by:
trySetRatein interfaceIRateLimiter
-
acquire
public void acquire()Description copied from interface:IRateLimiterAcquires a permit from this RateLimiter, blocking until one is available. Acquires a permit, if one is available and returns immediately, reducing the number of available permits by one.- Specified by:
acquirein interfaceIRateLimiter
-
acquire
public void acquire(long permits) Description copied from interface:IRateLimiterAcquires a specifiedpermitsfrom this RateLimiter, blocking until one is available.Acquires the given number of permits, if they are available and returns immediately, reducing the number of available permits by the given amount.
- Specified by:
acquirein interfaceIRateLimiter- Parameters:
permits- the number of permits to acquire
-
stop
public void stop()Description copied from interface:IRateLimiterStop rate limiter- Specified by:
stopin interfaceIRateLimiter
-
debug
- Specified by:
debugin interfaceIRateLimiter- Returns:
- debug info
-