Sha256: c097d6045a39294252a0cdc47e2d6065f9080336ba05607bdaade01221edea7a

Contents?: true

Size: 488 Bytes

Versions: 4

Compression:

Stored size: 488 Bytes

Contents

module Sidekiq::LimitFetch::Local
  module Selector
    extend self

    def acquire(names)
      blocked = false
      queues(names).select {|queue|
        next false      if blocked
        blocked = true  if not queue.paused? and queue.blocking? and queue.busy > 0
        queue.acquire
      }.map(&:name)
    end

    def release(names)
      queues(names).each(&:release)
    end

    private

    def queues(names)
      names.map {|name| Sidekiq::Queue[name] }
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sidekiq-limit_fetch-1.1 lib/sidekiq/limit_fetch/local/selector.rb
sidekiq-limit_fetch-1.0 lib/sidekiq/limit_fetch/local/selector.rb
sidekiq-limit_fetch-0.9 lib/sidekiq/limit_fetch/local/selector.rb
sidekiq-limit_fetch-0.8 lib/sidekiq/limit_fetch/local/selector.rb