Fixed - RRateLimiter throws "bad argument #2 to 'unpack' (string expected, got nil)." error. #2987

pull/3192/head
Nikita Koksharov 4 years ago
parent f005762fd3
commit 3e578c1af0

@ -194,6 +194,8 @@ public class RedissonRateLimiter extends RedissonExpirable implements RRateLimit
+ "permitsName = KEYS[5];"
+ "end;"
+ "assert(tonumber(rate) >= tonumber(ARGV[1]), 'Requested permits amount could not exceed defined rate'); "
+ "local currentValue = redis.call('get', valueName); "
+ "if currentValue ~= false then "
+ "local expiredValues = redis.call('zrangebyscore', permitsName, 0, tonumber(ARGV[2]) - interval); "
@ -219,7 +221,6 @@ public class RedissonRateLimiter extends RedissonExpirable implements RRateLimit
+ "return nil; "
+ "end; "
+ "else "
+ "assert(tonumber(rate) >= tonumber(ARGV[1]), 'Requested permits amount could not exceed defined rate'); "
+ "redis.call('set', valueName, rate); "
+ "redis.call('zadd', permitsName, ARGV[2], struct.pack('fI', ARGV[3], ARGV[1])); "
+ "redis.call('decrby', valueName, ARGV[1]); "

Loading…
Cancel
Save