Class: SolidQueueGuard::Checks::Config::PumaColocatedCheck

Inherits:
Base
  • Object
show all
Defined in:
lib/solid_queue_guard/checks/config/puma_colocated_check.rb

Constant Summary collapse

PUMA_PLUGIN_PATTERN =
/plugin\s+:?solid_queue/

Instance Method Summary collapse

Methods inherited from Base

call, #initialize

Constructor Details

This class inherits a constructor from SolidQueueGuard::Checks::Base

Instance Method Details

#callObject



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/config/puma_colocated_check.rb', line 9

def call
  puma_config = rails_root.join('config/puma.rb')

  return pass('puma_colocated', 'No config/puma.rb found') unless puma_config.exist?

  content = puma_config.read

  if content.match?(PUMA_PLUGIN_PATTERN)
    if Rails.env.production?
      warn(
        'puma_colocated',
        'Solid Queue Puma plugin is enabled in production',
        suggestion: 'Run Solid Queue in a dedicated job process for better isolation and memory management'
      )
    else
      pass('puma_colocated', 'Solid Queue Puma plugin detected (non-production environment)')
    end
  else
    pass('puma_colocated', 'Solid Queue is not co-located with Puma')
  end
end