lib/sidekiq_unique_jobs/lua/lock.lua in sidekiq-unique-jobs-8.0.9 vs lib/sidekiq_unique_jobs/lua/lock.lua in sidekiq-unique-jobs-8.0.10

- old
+ new

@@ -13,19 +13,20 @@ -------- BEGIN lock arguments --------- local job_id = ARGV[1] local pttl = tonumber(ARGV[2]) local lock_type = ARGV[3] local limit = tonumber(ARGV[4]) +local lock_score = ARGV[5] -------- END lock arguments ----------- -------- BEGIN injected arguments -------- -local current_time = tonumber(ARGV[5]) -local debug_lua = tostring(ARGV[6]) == "1" -local max_history = tonumber(ARGV[7]) -local script_name = tostring(ARGV[8]) .. ".lua" -local redisversion = ARGV[9] +local current_time = tonumber(ARGV[6]) +local debug_lua = tostring(ARGV[7]) == "1" +local max_history = tonumber(ARGV[8]) +local script_name = tostring(ARGV[9]) .. ".lua" +local redisversion = ARGV[10] --------- END injected arguments --------- -------- BEGIN local functions -------- <%= include_partial "shared/_common.lua" %> @@ -60,11 +61,19 @@ if lock_type == "until_expired" and pttl and pttl > 0 then log_debug("ZADD", expiring_digests, current_time + pttl, digest) redis.call("ZADD", expiring_digests, current_time + pttl, digest) else - log_debug("ZADD", digests, current_time, digest) - redis.call("ZADD", digests, current_time, digest) + local score + + if #lock_score == 0 then + score = current_time + else + score = lock_score + end + + log_debug("ZADD", digests, score, digest) + redis.call("ZADD", digests, score, digest) end log_debug("HSET", locked, job_id, current_time) redis.call("HSET", locked, job_id, current_time)