Class: SourceMonitor::Setup::Verification::RecurringScheduleVerifier

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

Constant Summary collapse

SOURCE_MONITOR_KEY_PREFIX =
"source_monitor_"
SOURCE_MONITOR_NAMESPACE =
"SourceMonitor::"

Instance Method Summary collapse

Constructor Details

#initialize(task_relation: default_task_relation, connection: default_connection) ⇒ RecurringScheduleVerifier

Returns a new instance of RecurringScheduleVerifier.



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

def initialize(task_relation: default_task_relation, connection: default_connection)
  @task_relation = task_relation
  @connection = connection
end

Instance Method Details

#callObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/source_monitor/setup/verification/recurring_schedule_verifier.rb', line 15

def call
  return missing_gem_result unless task_relation
  return missing_tables_result unless tables_present?

  tasks = all_tasks
  sm_tasks = source_monitor_tasks(tasks)

  if sm_tasks.any?
    ok_result("#{sm_tasks.size} SourceMonitor recurring task(s) registered")
  elsif tasks.any?
    warning_result(
      "Recurring tasks exist but none belong to SourceMonitor",
      "Add SourceMonitor entries to config/recurring.yml and ensure the dispatcher has `recurring_schedule: config/recurring.yml`"
    )
  else
    warning_result(
      "No recurring tasks are registered with Solid Queue",
      "Configure a dispatcher with `recurring_schedule: config/recurring.yml` in config/queue.yml and ensure recurring.yml contains SourceMonitor task entries"
    )
  end
rescue StandardError => e
  error_result(
    "Recurring schedule verification failed: #{e.message}",
    "Verify Solid Queue migrations are up to date and the dispatcher is configured with recurring_schedule"
  )
end