Class: Roundhouse::Stats::Queues

Inherits:
Object
  • Object
show all
Defined in:
lib/roundhouse/api.rb

Instance Method Summary collapse

Instance Method Details

#lengthsObject



151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# File 'lib/roundhouse/api.rb', line 151

def lengths
  Roundhouse.redis do |conn|
    # Refactor note: this set contains the bucket names, not
    # the queue names
    queues = conn.smembers('queues'.freeze)

    lengths = conn.pipelined do
      queues.each do |queue|
        conn.llen("queue:#{queue}")
      end
    end

    i = 0
    array_of_arrays = queues.inject({}) do |memo, queue|
      memo[queue] = lengths[i]
      i += 1
      memo
    end.sort_by { |_, size| size }

    Hash[array_of_arrays.reverse]
  end
end