From 07e693fd9ff37aed20c26a0eafd8e19880b4658b Mon Sep 17 00:00:00 2001 From: Abhishek Chandrasekaran Date: Fri, 21 Aug 2020 22:11:00 -0700 Subject: [PATCH] rename methods, add to other interfaces, refactor Signed-off-by: Abhishek Chandrasekaran --- .../main/java/org/redisson/RedissonRateLimiter.java | 10 +++++----- .../src/main/java/org/redisson/api/RRateLimiter.java | 2 +- .../java/org/redisson/api/RRateLimiterAsync.java | 2 +- .../java/org/redisson/api/RRateLimiterReactive.java | 12 ++++++++++++ .../main/java/org/redisson/api/RRateLimiterRx.java | 12 ++++++++++++ 5 files changed, 31 insertions(+), 7 deletions(-) diff --git a/redisson/src/main/java/org/redisson/RedissonRateLimiter.java b/redisson/src/main/java/org/redisson/RedissonRateLimiter.java index cd1243111..c9c9b63c3 100644 --- a/redisson/src/main/java/org/redisson/RedissonRateLimiter.java +++ b/redisson/src/main/java/org/redisson/RedissonRateLimiter.java @@ -244,18 +244,18 @@ public class RedissonRateLimiter extends RedissonExpirable implements RRateLimit } @Override - public boolean updateRate(RateType type, long rate, long rateInterval, RateIntervalUnit unit) { - return get(updateRateAsync(type, rate, rateInterval, unit)); + public boolean setRate(RateType type, long rate, long rateInterval, RateIntervalUnit unit) { + return get(setRateAsync(type, rate, rateInterval, unit)); } @Override - public RFuture updateRateAsync(RateType type, long rate, long rateInterval, RateIntervalUnit unit) { + public RFuture setRateAsync(RateType type, long rate, long rateInterval, RateIntervalUnit unit) { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('hset', KEYS[1], 'rate', ARGV[1]);" + "redis.call('hset', KEYS[1], 'interval', ARGV[2]);" + "redis.call('hset', KEYS[1], 'type', ARGV[3]);" - + "return redis.call('del', ARGV[4], ARGV[5]);", - Collections.singletonList(getName()), rate, unit.toMillis(rateInterval), type.ordinal(), getValueName(), getPermitsName()); + + "return redis.call('del', KEYS[2], KEYS[3]);", + Arrays.asList(getName(), getValueName(), getPermitsName()), rate, unit.toMillis(rateInterval), type.ordinal()); } private static final RedisCommand HGETALL = new RedisCommand("HGETALL", new MultiDecoder() { diff --git a/redisson/src/main/java/org/redisson/api/RRateLimiter.java b/redisson/src/main/java/org/redisson/api/RRateLimiter.java index bc8a1bbcc..e21af5a29 100644 --- a/redisson/src/main/java/org/redisson/api/RRateLimiter.java +++ b/redisson/src/main/java/org/redisson/api/RRateLimiter.java @@ -47,7 +47,7 @@ public interface RRateLimiter extends RRateLimiterAsync, RExpirable { * @return {@code true} if rate was set and {@code false} * otherwise */ - boolean updateRate(RateType mode, long rate, long rateInterval, RateIntervalUnit rateIntervalUnit); + boolean setRate(RateType mode, long rate, long rateInterval, RateIntervalUnit rateIntervalUnit); /** * Acquires a permit only if one is available at the diff --git a/redisson/src/main/java/org/redisson/api/RRateLimiterAsync.java b/redisson/src/main/java/org/redisson/api/RRateLimiterAsync.java index 75c1f9e96..dd29abcfc 100644 --- a/redisson/src/main/java/org/redisson/api/RRateLimiterAsync.java +++ b/redisson/src/main/java/org/redisson/api/RRateLimiterAsync.java @@ -155,7 +155,7 @@ public interface RRateLimiterAsync extends RExpirableAsync { * @return {@code true} if rate was set and {@code false} * otherwise */ - RFuture updateRateAsync(RateType mode, long rate, long rateInterval, RateIntervalUnit rateIntervalUnit); + RFuture setRateAsync(RateType mode, long rate, long rateInterval, RateIntervalUnit rateIntervalUnit); /** * Returns current configuration of this RateLimiter object. diff --git a/redisson/src/main/java/org/redisson/api/RRateLimiterReactive.java b/redisson/src/main/java/org/redisson/api/RRateLimiterReactive.java index efa5377d9..6eb01f6f0 100644 --- a/redisson/src/main/java/org/redisson/api/RRateLimiterReactive.java +++ b/redisson/src/main/java/org/redisson/api/RRateLimiterReactive.java @@ -39,6 +39,18 @@ public interface RRateLimiterReactive extends RExpirableReactive { */ Mono trySetRate(RateType mode, long rate, long rateInterval, RateIntervalUnit rateIntervalUnit); + /** + * Updates RateLimiter's state and stores config to Redis server. + * + * @param mode - rate mode + * @param rate - rate + * @param rateInterval - rate time interval + * @param rateIntervalUnit - rate time interval unit + * @return {@code true} if rate was set and {@code false} + * otherwise + */ + Mono setRate(RateType mode, long rate, long rateInterval, RateIntervalUnit rateIntervalUnit); + /** * Acquires a permit only if one is available at the * time of invocation. diff --git a/redisson/src/main/java/org/redisson/api/RRateLimiterRx.java b/redisson/src/main/java/org/redisson/api/RRateLimiterRx.java index abf409616..f899d575f 100644 --- a/redisson/src/main/java/org/redisson/api/RRateLimiterRx.java +++ b/redisson/src/main/java/org/redisson/api/RRateLimiterRx.java @@ -40,6 +40,18 @@ public interface RRateLimiterRx extends RExpirableRx { */ Single trySetRate(RateType mode, long rate, long rateInterval, RateIntervalUnit rateIntervalUnit); + /** + * Updates RateLimiter's state and stores config to Redis server. + * + * @param mode - rate mode + * @param rate - rate + * @param rateInterval - rate time interval + * @param rateIntervalUnit - rate time interval unit + * @return {@code true} if rate was set and {@code false} + * otherwise + */ + Single setRate(RateType mode, long rate, long rateInterval, RateIntervalUnit rateIntervalUnit); + /** * Acquires a permit only if one is available at the * time of invocation.