Skip to content

Commit a743f27

Browse files
committed
Streamline misconfiguration detection and error messaging
1 parent 161de8f commit a743f27

File tree

2 files changed

+20
-22
lines changed

2 files changed

+20
-22
lines changed

Diff for: lib/solid_queue/configuration.rb

+17-3
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,21 @@ def configured_processes
3737
end
3838

3939
def valid?
40-
skip_recurring_tasks? || recurring_tasks.none? || recurring_tasks.all?(&:valid?)
40+
configured_processes.any? && (skip_recurring_tasks? || invalid_tasks.none?)
4141
end
4242

43-
def invalid_tasks
44-
recurring_tasks.select(&:invalid?)
43+
def error_messages
44+
if configured_processes.none?
45+
"No workers or processed configured. Exiting..."
46+
else
47+
error_messages = invalid_tasks.map do |task|
48+
all_messages = task.errors.full_messages.map { |msg| "\t#{msg}" }.join("\n")
49+
"#{task.key}:\n#{all_messages}"
50+
end
51+
.join("\n")
52+
53+
"Invalid processes configured:\n#{error_messages}"
54+
end
4555
end
4656

4757
def max_number_of_threads
@@ -62,6 +72,10 @@ def default_options
6272
}
6373
end
6474

75+
def invalid_tasks
76+
recurring_tasks.select(&:invalid?)
77+
end
78+
6579
def only_work?
6680
options[:only_work]
6781
end

Diff for: lib/solid_queue/supervisor.rb

+3-19
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,12 @@ def start(**options)
1010
SolidQueue.supervisor = true
1111
configuration = Configuration.new(**options)
1212

13-
if configuration.configured_processes.any?
14-
if configuration.valid?
15-
new(configuration).tap(&:start)
16-
else
17-
abort_due_to_invalid_tasks(configuration)
18-
end
13+
if configuration.valid?
14+
new(configuration).tap(&:start)
1915
else
20-
abort "No workers or processed configured. Exiting..."
16+
abort configuration.error_messages
2117
end
2218
end
23-
24-
private
25-
def abort_due_to_invalid_tasks(configuration)
26-
error_messages = configuration.invalid_tasks
27-
.map do |task|
28-
all_messages = task.errors.full_messages.map { |msg| "\t#{msg}" }.join("\n")
29-
"#{task.key}:\n#{all_messages}"
30-
end
31-
.join("\n")
32-
33-
abort "Invalid processes configured:\n#{error_messages}"
34-
end
3519
end
3620

3721
def initialize(configuration)

0 commit comments

Comments
 (0)