Class: SolidQueueGuard::Checks::Config::SchedulerConfigCheck

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

Instance Method Summary collapse

Methods inherited from Base

call, check_id, #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
# File 'lib/solid_queue_guard/checks/config/scheduler_config_check.rb', line 7

def call
  recurring_tasks = solid_queue_configuration.send(:recurring_tasks)
  scheduler_expected = solid_queue_configuration.send(:schedulers).any?

  return pass('scheduler_config', 'No recurring tasks configured') if recurring_tasks.empty?

  if scheduler_expected
    pass('scheduler_config', "Recurring scheduler is configured (#{recurring_tasks.size} tasks)")
  elsif solid_queue_configuration.send(:skip_recurring_tasks?)
    warn(
      'scheduler_config',
      'Recurring tasks defined but recurring execution is skipped',
      suggestion: 'Unset SOLID_QUEUE_SKIP_RECURRING and ensure scheduler process runs'
    )
  else
    failure(
      'scheduler_config',
      'recurring.yml defines scheduled tasks but no scheduler is configured',
      suggestion: 'Ensure config/recurring.yml tasks have a :schedule key and scheduler is enabled'
    )
  end
end