if pending < nrcpt then pending = 0 else pending = pending - nrcpt end
-- 3. Set the updated values back to Redis and update the expiration time for the bucket
-redis.call('HMSET', prefix, tostring(pending), 'l', KEYS[2])
+redis.call('HMSET', prefix, 'p', tostring(pending), 'l', KEYS[2])
redis.call('EXPIRE', prefix, KEYS[3])
-- 4. Return the updated pending value
if task:cache_get('ratelimit_bucket_touched') then
local prefixes = task:cache_get('ratelimit_prefixes')
if prefixes then
- for k, v in pairs(prefixes) or E do
+ for k, v in pairs(prefixes) do
local bucket = v.bucket
local function cleanup_cb(err, data)
if err then