Class: Qless::JobReservers::RoundRobin

Inherits:
Object
  • Object
show all
Defined in:
lib/qless/job_reservers/round_robin.rb

Direct Known Subclasses

ShuffledRoundRobin

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queues) ⇒ RoundRobin

Returns a new instance of RoundRobin.



6
7
8
9
10
# File 'lib/qless/job_reservers/round_robin.rb', line 6

def initialize(queues)
  @queues = queues
  @num_queues = queues.size
  @last_popped_queue_index = @num_queues - 1
end

Instance Attribute Details

#queuesObject (readonly)

Returns the value of attribute queues.



4
5
6
# File 'lib/qless/job_reservers/round_robin.rb', line 4

def queues
  @queues
end

Instance Method Details

#descriptionObject



21
22
23
# File 'lib/qless/job_reservers/round_robin.rb', line 21

def description
  @description ||= @queues.map(&:name).join(', ') + " (#{self.class::TYPE_DESCRIPTION})"
end

#reserveObject



12
13
14
15
16
17
18
19
# File 'lib/qless/job_reservers/round_robin.rb', line 12

def reserve
  @num_queues.times do |i|
    if job = next_queue.pop
      return job
    end
  end
  nil
end