about summary refs log tree commit diff
path: root/app/lib/admin/system_check/sidekiq_process_check.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/lib/admin/system_check/sidekiq_process_check.rb')
-rw-r--r--app/lib/admin/system_check/sidekiq_process_check.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/app/lib/admin/system_check/sidekiq_process_check.rb b/app/lib/admin/system_check/sidekiq_process_check.rb
new file mode 100644
index 000000000..c44d86c44
--- /dev/null
+++ b/app/lib/admin/system_check/sidekiq_process_check.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+class Admin::SystemCheck::SidekiqProcessCheck < Admin::SystemCheck::BaseCheck
+  SIDEKIQ_QUEUES = %w(
+    default
+    push
+    mailers
+    pull
+    scheduler
+    ingress
+  ).freeze
+
+  def pass?
+    missing_queues.empty?
+  end
+
+  def message
+    Admin::SystemCheck::Message.new(:sidekiq_process_check, missing_queues.join(', '))
+  end
+
+  private
+
+  def missing_queues
+    @missing_queues ||= Sidekiq::ProcessSet.new.reduce(SIDEKIQ_QUEUES) { |queues, process| queues - process['queues'] }
+  end
+end