Class: SolidQueueGuard::Checks::Runtime::PumaPluginRuntimeCheck

Inherits:
Base
  • Object
show all
Defined in:
lib/solid_queue_guard/checks/runtime/puma_plugin_runtime_check.rb

Instance Method Summary collapse

Instance Method Details

#callObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/solid_queue_guard/checks/runtime/puma_plugin_runtime_check.rb', line 7

def call
  return skip(check_id, 'Solid Queue Puma plugin is not enabled') unless PumaPluginSupport.puma_plugin_enabled?

  with_queue_database do
    threshold = config.check_setting(:puma_plugin_runtime, :threshold, config.stale_process_threshold)
    active = SolidQueue::Process.where(last_heartbeat_at: threshold.ago..)

    if active.any?
      pass(
        check_id,
        "Solid Queue processes are active via Puma plugin (#{active.count} process(es))",
        metadata: { active_processes: active.count, supervisor_mode: supervisor_mode_label }
      )
    else
      failure(
        check_id,
        'Solid Queue Puma plugin is enabled but no active processes were found',
        suggestion: 'Verify the Puma plugin booted Solid Queue and workers are processing jobs',
        metadata: { supervisor_mode: supervisor_mode_label }
      )
    end
  end
end