Class: Lowkiq::Queue::ShardMetrics

Inherits:
Object
  • Object
show all
Defined in:
lib/lowkiq/queue/shard_metrics.rb

Instance Method Summary collapse

Constructor Details

#initialize(redis_pool) ⇒ ShardMetrics

Returns a new instance of ShardMetrics.



4
5
6
7
# File 'lib/lowkiq/queue/shard_metrics.rb', line 4

def initialize(redis_pool)
  @redis_pool = redis_pool
  @timestamp = Utils::Timestamp.method(:now)
end

Instance Method Details

#call(queues) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/lowkiq/queue/shard_metrics.rb', line 9

def call(queues)
  result = @redis_pool.with do |redis|
    redis.pipelined do
      queues.each { |queue| pipeline redis, queue }
    end
  end

  result.each_slice(pipeline_count).map do |res|
    coerce(res)
  end
end