redis/create.lua in sidekiq-unique-jobs-6.0.3 vs redis/create.lua in sidekiq-unique-jobs-6.0.4

- old
+ new

@@ -10,15 +10,20 @@ local job_id = ARGV[1] local expiration = tonumber(ARGV[2]) local api_version = ARGV[3] local concurrency = tonumber(ARGV[4]) -local stored_token = redis.call('GETSET', exists_key, job_id) -if stored_token then +-- redis.log(redis.LOG_DEBUG, "create.lua - investigate possibility of locking jid: " .. job_id) + +local stored_token = redis.call('GET', exists_key) +if stored_token and stored_token ~= job_id then + -- redis.log(redis.LOG_DEBUG, "create.lua - jid: " .. job_id .. " - returning existing jid: " .. stored_token) return stored_token end +redis.call('SET', exists_key, job_id) + ---------------------------------------------------------------- -- TODO: Legacy support (Remove in v6.1) local old_token = redis.call('GET', unique_digest) if old_token then if old_token == job_id or old_token == '2' then @@ -28,10 +33,11 @@ return old_token end end ---------------------------------------------------------------- +-- redis.log(redis.LOG_DEBUG, "create.lua - creating locks for jid: " .. job_id) redis.call('SADD', unique_keys, unique_digest) redis.call('EXPIRE', exists_key, 5) redis.call('DEL', grabbed_key) redis.call('DEL', available_key) @@ -40,9 +46,13 @@ redis.call('RPUSH', available_key, index) end else redis.call('RPUSH', available_key, job_id) end -redis.call('GETSET', version_key, api_version) + +-- redis.log(redis.LOG_DEBUG, "create.lua - persisting locks for jid: " .. job_id) redis.call('PERSIST', exists_key) + +redis.call('GETSET', version_key, api_version) + return job_id