redlock-rb icon indicating copy to clipboard operation
redlock-rb copied to clipboard

Is it desired behavior to sleep, even after the last retry in the lock function?

Open wingunder opened this issue 5 years ago • 0 comments

If a lock was not obtained in the lock function, is it desired behavior to sleep (in line 80), even after the last retry? I think that the last retry's sleep will be a waste of time, if the lock was not obtained. https://github.com/antirez/redlock-rb/blob/97be08b307eaad7f9b23db41e8def691ea41a342/redlock.rb#L55-L57 https://github.com/antirez/redlock-rb/blob/97be08b307eaad7f9b23db41e8def691ea41a342/redlock.rb#L79-L81

If my argument holds, how about:

for i in 0..(retry_count-1)

  # The major part of the lock function goes here.

  # Don't sleep if it's the last retry.
  if (i != retry_count-1)
    # Wait a random part of retry_delay, before retrying.
    sleep(rand(@retry_delay).to_f/1000)
  end
end

wingunder avatar Nov 02 '19 21:11 wingunder