Class: Sidekiq::QueueMetrics::Storage

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq_queue_metrics/storage.rb

Class Method Summary collapse

Class Method Details

.add_failed_job(job, max_count = Sidekiq::QueueMetrics.max_recently_failed_jobs) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/sidekiq_queue_metrics/storage.rb', line 18

def add_failed_job(job, max_count = Sidekiq::QueueMetrics.max_recently_failed_jobs)
  queue = job['queue']

  Sidekiq.redis_pool.with do |conn|
    failed_job_key_for_queue = Helpers.build_failed_jobs_key(queue)

    conn.lpush(failed_job_key_for_queue, Sidekiq.dump_json(job))
    conn.rpop(failed_job_key_for_queue) if conn.llen(failed_job_key_for_queue) >= max_count
  end
end

.failed_jobs(queue) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/sidekiq_queue_metrics/storage.rb', line 29

def failed_jobs(queue)
  result = Sidekiq.redis_pool.with do |conn|
    conn.lrange(Helpers.build_failed_jobs_key(queue), 0, -1)
  end

  result.map(&Sidekiq.method(:load_json))
end

.get_stats(queue) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/sidekiq_queue_metrics/storage.rb', line 10

def get_stats(queue)
  stats = Sidekiq.redis_pool.with do |conn|
    conn.hgetall(Helpers.build_queue_stats_key(queue))
  end

  Helpers.convert_hash_values(stats) { |value| value.to_i }
end

.increment_stat(queue, stat, value = 1) ⇒ Object



4
5
6
7
8
# File 'lib/sidekiq_queue_metrics/storage.rb', line 4

def increment_stat(queue, stat, value = 1)
  Sidekiq.redis_pool.with do |conn|
    conn.hincrby(Helpers.build_queue_stats_key(queue), stat, value)
  end
end