Sha256: c123e91c5681f4a1821a60b8f411f8c48e633f5db057153d6fbfb5d1d7692bab

Contents?: true

Size: 944 Bytes

Versions: 10

Compression:

Stored size: 944 Bytes

Contents

module Sidekiq
  module_function

  def info
    results = {}
    processed, failed, queues = Sidekiq.redis { |conn|
      conn.multi do
        conn.get('stat:processed')
        conn.get('stat:failed')
        conn.smembers('queues')
      end
    }
    results[:queues_with_sizes] = Sidekiq.redis do |conn|
      queues.inject({}) { |memo, q|
        memo[q] = conn.llen("queue:#{q}")
        memo
      }.sort_by { |_, size| size }
    end
    results[:processed] = (processed || 0).to_i
    results[:failed] = (failed || 0).to_i
    results[:backlog] = results[:queues_with_sizes].
                          map {|_, size| size }.
                          inject(0) {|memo, val| memo + val }
    results
  end

  def size(*queues)
    return info[:backlog] if queues.empty?

    Sidekiq.redis { |conn|
      conn.multi {
        queues.map { |q| conn.llen("queue:#{q}") }
      }
    }.inject(0) { |memo, count| memo += count }
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
sidekiq-2.5.4 lib/sidekiq/stats.rb
sidekiq-2.5.3 lib/sidekiq/stats.rb
sidekiq-2.5.2 lib/sidekiq/stats.rb
sidekiq-2.5.1 lib/sidekiq/stats.rb
sidekiq-2.5.0 lib/sidekiq/stats.rb
sidekiq-2.4.0 lib/sidekiq/stats.rb
sidekiq-2.3.3 lib/sidekiq/stats.rb
sidekiq-2.3.2 lib/sidekiq/stats.rb
sidekiq-2.3.1 lib/sidekiq/stats.rb
sidekiq-2.3.0 lib/sidekiq/stats.rb