class Qless::JobReservers::RoundRobin
Round-robins through all the provided queues
Constants
- TYPE_DESCRIPTION
Attributes
queues[R]
Public Class Methods
new(queues)
click to toggle source
# File lib/qless/job_reservers/round_robin.rb, line 9 def initialize(queues) @queues = queues @num_queues = queues.size @last_popped_queue_index = @num_queues - 1 end
Public Instance Methods
description()
click to toggle source
# File lib/qless/job_reservers/round_robin.rb, line 27 def description @description ||= @queues.map(&:name).join(', ') + " (#{self.class::TYPE_DESCRIPTION})" end
prep_for_work!()
click to toggle source
# File lib/qless/job_reservers/round_robin.rb, line 23 def prep_for_work! # nothing here on purpose end
reserve()
click to toggle source
# File lib/qless/job_reservers/round_robin.rb, line 15 def reserve @num_queues.times do |i| job = next_queue.pop return job if job end nil end
reset_description!()
click to toggle source
# File lib/qless/job_reservers/round_robin.rb, line 32 def reset_description! @description = nil end
Private Instance Methods
next_queue()
click to toggle source
# File lib/qless/job_reservers/round_robin.rb, line 40 def next_queue @last_popped_queue_index = (@last_popped_queue_index + 1) % @num_queues @queues[@last_popped_queue_index] end