class Sidekiq::Health::QueueStatus::Status
Attributes
dead_set[R]
queue_name[R]
Public Class Methods
new(queue_name, dead_set)
click to toggle source
# File lib/sidekiq/health/queue_status.rb, line 10 def initialize(queue_name, dead_set) @queue_name = queue_name @dead_set = dead_set end
Public Instance Methods
health_as_human_readable_string()
click to toggle source
# File lib/sidekiq/health/queue_status.rb, line 39 def health_as_human_readable_string health = [] if total_number_of_jobs > Sidekiq::Health::MAXIMUM_HEALTHY_QUEUE_SIZE more_than_allowed = total_number_of_jobs - Sidekiq::Health::MAXIMUM_HEALTHY_QUEUE_SIZE health << "There are a total of #{total_number_of_jobs} scheduled jobs, "\ "which is #{more_than_allowed} more than healthy." end dead_in_last_hour = total_number_of_failed_jobs_since(1.hour.ago) if dead_in_last_hour > Sidekiq::Health::MAXIMUM_HEALTHY_DEAD_SET_LAST_HOUR_SIZE more_than_allowed = dead_in_last_hour - Sidekiq::Health::MAXIMUM_HEALTHY_DEAD_SET_LAST_HOUR_SIZE health << "There are a total of #{dead_in_last_hour} failed jobs, "\ "which is #{more_than_allowed} more than healthy." end if health.empty? health << "Everything looks good." end health.join(" ") end
number_of_scheduled_jobs_per_class_name()
click to toggle source
# File lib/sidekiq/health/queue_status.rb, line 29 def number_of_scheduled_jobs_per_class_name @number_of_scheduled_jobs_per_class_name ||= sidekiq_queue.inject({}) do |job_pool, scheduled_job| wrapped_class = scheduled_job['wrapped'] job_pool[wrapped_class] = job_pool.fetch(wrapped_class, 0) + 1 job_pool end .sort_by { |job_name, count| count } .to_h end
total_number_of_failed_jobs()
click to toggle source
# File lib/sidekiq/health/queue_status.rb, line 21 def total_number_of_failed_jobs dead_set.size end
total_number_of_failed_jobs_since(timestamp)
click to toggle source
# File lib/sidekiq/health/queue_status.rb, line 25 def total_number_of_failed_jobs_since(timestamp) dead_set.select { |item| item['failed_at'] > timestamp.to_r }.size end
total_number_of_jobs()
click to toggle source
# File lib/sidekiq/health/queue_status.rb, line 17 def total_number_of_jobs sidekiq_queue.size end
Private Instance Methods
sidekiq_queue()
click to toggle source
# File lib/sidekiq/health/queue_status.rb, line 66 def sidekiq_queue @sidekiq_queue ||= Sidekiq::Queue.new queue_name end