lib/sidekiq/limit_fetch/local/selector.rb in sidekiq-limit_fetch-1.1 vs lib/sidekiq/limit_fetch/local/selector.rb in sidekiq-limit_fetch-1.2

- old
+ new

@@ -1,13 +1,20 @@ module Sidekiq::LimitFetch::Local module Selector extend self def acquire(names) - blocked = false + blocked = false + unblocked = [] + queues(names).select {|queue| - next false if blocked - blocked = true if not queue.paused? and queue.blocking? and queue.busy > 0 + next false if blocked and not unblocked.include?(queue.name) + + if not queue.paused? and queue.blocking? and queue.busy > 0 + blocked = true + unblocked = queue.unblocked || [] + end + queue.acquire }.map(&:name) end def release(names)