Class: RailsHealthChecks::CheckRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_health_checks/check_registry.rb

Constant Summary collapse

BUILT_INS =
{
  database: -> { Checks::DatabaseCheck.new },
  cache:    -> { Checks::CacheCheck.new },
  sidekiq:     -> { Checks::SidekiqCheck.new(queue_size: RailsHealthChecks.configuration.sidekiq_queue_size) },
  solid_queue: -> { Checks::SolidQueueCheck.new(job_count: RailsHealthChecks.configuration.solid_queue_job_count) },
  good_job:    -> { Checks::GoodJobCheck.new(latency: RailsHealthChecks.configuration.good_job_latency) },
  resque:      -> { Checks::ResqueCheck.new(queue_size: RailsHealthChecks.configuration.resque_queue_size) }
}.freeze

Class Method Summary collapse

Class Method Details

.build(check_names) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/rails_health_checks/check_registry.rb', line 16

def self.build(check_names)
  check_names.each_with_object({}) do |name, hash|
    factory = BUILT_INS.fetch(name) do
      raise ArgumentError, "Unknown check: #{name}. Available: #{BUILT_INS.keys.join(', ')}"
    end
    hash[name] = factory.call
  end
end

.run(checks, timeout:) ⇒ Object



25
26
27
# File 'lib/rails_health_checks/check_registry.rb', line 25

def self.run(checks, timeout:)
  checks.transform_values { |check| run_check(check, timeout: timeout) }
end