Class: SolidQueueGuard::Checks::Config::ConnectsToCheck

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

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



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/solid_queue_guard/checks/config/connects_to_check.rb', line 7

def call
  connects_to = Rails.application.config.solid_queue.connects_to

  if connects_to.blank?
    return failure(
      'connects_to',
      'config.solid_queue.connects_to is not configured',
      suggestion: 'Set config.solid_queue.connects_to = { database: { writing: :queue } }'
    )
  end

  writing = connects_to.dig(:database, :writing) || connects_to.dig('database', 'writing')

  if writing.to_s != 'queue'
    failure(
      'connects_to',
      "Solid Queue connects_to writing target is #{writing.inspect}, expected :queue",
      suggestion: 'Point config.solid_queue.connects_to to the queue database'
    )
  elsif SolidQueue::Record.connection_pool.nil?
    failure('connects_to', 'Solid Queue queue database connection pool is not available')
  else
    pass(
      'connects_to',
      "Solid Queue connects_to queue database (pool: #{SolidQueue::Record.connection_pool.size})"
    )
  end
end