From f0ec6e227c47f3cfdc98ba29c1834f608ca46835 Mon Sep 17 00:00:00 2001 From: Alexander Nosenko Date: Fri, 20 Jun 2025 12:14:04 +0200 Subject: [PATCH] Log Supervisor validation errors --- lib/solid_queue/log_subscriber.rb | 6 ++++++ lib/solid_queue/supervisor.rb | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/solid_queue/log_subscriber.rb b/lib/solid_queue/log_subscriber.rb index 96fb19bf..e6cb8771 100644 --- a/lib/solid_queue/log_subscriber.rb +++ b/lib/solid_queue/log_subscriber.rb @@ -140,6 +140,12 @@ def immediate_termination(event) info formatted_event(event, action: "Supervisor terminated immediately", **event.payload.slice(:process_id, :supervisor_pid, :supervised_processes)) end + def supervisor_initialisation(event) + if event.payload.slice(:exception).any? + error formatted_event(event, action: "Supervisor failed to initialise", **event.payload.slice(:exception)) + end + end + def unhandled_signal_error(event) error formatted_event(event, action: "Received unhandled signal", **event.payload.slice(:signal)) end diff --git a/lib/solid_queue/supervisor.rb b/lib/solid_queue/supervisor.rb index 7d010593..2d917f2b 100644 --- a/lib/solid_queue/supervisor.rb +++ b/lib/solid_queue/supervisor.rb @@ -12,10 +12,12 @@ def start(**options) SolidQueue.supervisor = true configuration = Configuration.new(**options) - if configuration.valid? - new(configuration).tap(&:start) - else - abort configuration.errors.full_messages.join("\n") + "\nExiting..." + SolidQueue.instrument(:supervisor_initialisation, process: self) do + if configuration.valid? + new(configuration).tap(&:start) + else + abort configuration.errors.full_messages.join("\n") + "\nExiting..." + end end end end