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)