Class: SourceMonitor::Setup::Verification::SolidQueueVerifier

Inherits:
Object
  • Object
show all
Defined in:
lib/source_monitor/setup/verification/solid_queue_verifier.rb

Constant Summary collapse

DEFAULT_HEARTBEAT_THRESHOLD =
2.minutes

Instance Method Summary collapse

Constructor Details

#initialize(process_relation: default_process_relation, connection: default_connection, clock: -> { Time.current }) ⇒ SolidQueueVerifier

Returns a new instance of SolidQueueVerifier.



9
10
11
12
13
# File 'lib/source_monitor/setup/verification/solid_queue_verifier.rb', line 9

def initialize(process_relation: default_process_relation, connection: default_connection, clock: -> { Time.current })
  @process_relation = process_relation
  @connection = connection
  @clock = clock
end

Instance Method Details

#callObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/source_monitor/setup/verification/solid_queue_verifier.rb', line 15

def call
  return missing_gem_result unless process_relation
  return missing_tables_result unless tables_present?

  recent = recent_workers?

  if recent
    ok_result("Solid Queue workers are reporting heartbeats")
  else
    warning_result("No Solid Queue workers have reported in the last #{DEFAULT_HEARTBEAT_THRESHOLD.inspect}", "Start a Solid Queue worker with `bin/rails solid_queue:start` or add `jobs: bundle exec rake solid_queue:start` to Procfile.dev and run `bin/dev`")
  end
rescue StandardError => e
  error_result("Solid Queue verification failed: #{e.message}", "Verify Solid Queue migrations are up to date and workers can access the database")
end