class SidekiqUniqueJobs::Locksmith

def lock_sync(conn)

Other tags:
    Yieldparam: job_id - a Sidekiq JID

Returns:
  • (Object) - whatever the block returns when lock was acquired
  • (nil) - when lock was not possible

Parameters:
  • conn (Redis) -- a redis connection
def lock_sync(conn)
  return yield if locked?(conn)
  enqueue(conn) do
    primed_sync(conn) do
      locked_token = call_script(:lock, key.to_a, argv, conn)
      return yield if locked_token
    end
  end
end