class Redrate::Queue
Constants
- EPOCH
Public Class Methods
new(size, interval: 60, key: 'queue')
click to toggle source
# File lib/redrate/queue.rb, line 9 def initialize(size, interval: 60, key: 'queue') @ring = Ring.new(size, key, EPOCH) @interval = interval end
Public Instance Methods
shift()
click to toggle source
# File lib/redrate/queue.rb, line 14 def shift time = nil @ring.lock do sleep_until(@ring.current + @interval) @ring.rotate! end time end
Private Instance Methods
sleep_until(time)
click to toggle source
# File lib/redrate/queue.rb, line 27 def sleep_until(time) interval = time - @ring.now return unless interval.positive? sleep(interval) end