Class: Sidekiq::QueueMetrics::Storage
- Inherits:
-
Object
- Object
- Sidekiq::QueueMetrics::Storage
- Defined in:
- lib/sidekiq_queue_metrics/storage.rb
Constant Summary collapse
- FAILED_JOBS_KEY =
'failed_jobs'.freeze
Class Method Summary collapse
- .add_failed_job(job, max_count = Sidekiq::QueueMetrics.max_recently_failed_jobs) ⇒ Object
- .failed_jobs(queue) ⇒ Object
- .get_stats(key = stats_key) ⇒ Object
- .set_stats(key = stats_key, value) ⇒ Object
- .stats_key ⇒ Object
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 28 29 |
# File 'lib/sidekiq_queue_metrics/storage.rb', line 18 def add_failed_job(job, max_count = Sidekiq::QueueMetrics.max_recently_failed_jobs) Sidekiq.redis_pool.with do |conn| queue = job['queue'] failed_jobs = JSON.parse(conn.get("#{FAILED_JOBS_KEY}:#{queue}") || '[]') if failed_jobs.size >= max_count (failed_jobs.size - max_count + 1).times {failed_jobs.shift} end conn.set("#{FAILED_JOBS_KEY}:#{queue}", (failed_jobs << job).to_json) end end |
.failed_jobs(queue) ⇒ Object
31 32 33 34 35 |
# File 'lib/sidekiq_queue_metrics/storage.rb', line 31 def failed_jobs(queue) Sidekiq.redis_pool.with do |conn| JSON.parse(conn.get("#{FAILED_JOBS_KEY}:#{queue}") || '[]') end end |
.get_stats(key = stats_key) ⇒ Object
12 13 14 15 16 |
# File 'lib/sidekiq_queue_metrics/storage.rb', line 12 def get_stats(key = stats_key) Sidekiq.redis_pool.with do |conn| conn.get(key) end end |
.set_stats(key = stats_key, value) ⇒ Object
6 7 8 9 10 |
# File 'lib/sidekiq_queue_metrics/storage.rb', line 6 def set_stats(key = stats_key, value) Sidekiq.redis_pool.with do |conn| conn.set(key, value) end end |
.stats_key ⇒ Object
37 38 39 |
# File 'lib/sidekiq_queue_metrics/storage.rb', line 37 def stats_key Sidekiq::QueueMetrics.storage_location || 'queue_stats' end |