lib/shoryuken/polling.rb in shoryuken-2.1.3 vs lib/shoryuken/polling.rb in shoryuken-3.0.0
- old
+ new
@@ -63,11 +63,10 @@
Shoryuken.options[:delay].to_f
end
end
class WeightedRoundRobin < BaseStrategy
-
def initialize(queues)
@initial_queues = queues
@queues = queues.dup.uniq
@paused_queues = []
end
@@ -104,11 +103,11 @@
def pause(queue)
return unless @queues.delete(queue)
@paused_queues << [Time.now + delay, queue]
logger.debug "Paused '#{queue}'"
end
-
+
def unpause_queues
return if @paused_queues.empty?
return if Time.now < @paused_queues.first[0]
pause = @paused_queues.shift
@queues << pause[1]
@@ -127,11 +126,10 @@
queues.count { |q| q == queue }
end
end
class StrictPriority < BaseStrategy
-
def initialize(queues)
# Priority ordering of the queues, highest priority first
@queues = queues
.group_by { |q| q }
.sort_by { |_, qs| -qs.count }
@@ -176,10 +174,10 @@
queue = @queues[@next_queue_index]
@next_queue_index = (@next_queue_index + 1) % size
return queue unless queue_paused?(queue)
end
- return nil
+ nil
end
def queues_unpaused_since?
last = @last_unpause_check
now = @last_unpause_check = Time.now