summaryrefslogtreecommitdiff
path: root/lib/gitlab/sidekiq_config.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/sidekiq_config.rb')
-rw-r--r--lib/gitlab/sidekiq_config.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/gitlab/sidekiq_config.rb b/lib/gitlab/sidekiq_config.rb
index 16a0619daf6..bd6b80530c3 100644
--- a/lib/gitlab/sidekiq_config.rb
+++ b/lib/gitlab/sidekiq_config.rb
@@ -103,6 +103,21 @@ module Gitlab
queues_for_sidekiq_queues_yml != config_queues
end
+ # Returns a hash of worker class name => mapped queue name
+ def worker_queue_mappings
+ workers
+ .reject { |worker| worker.klass.is_a?(Gitlab::SidekiqConfig::DummyWorker) }
+ .to_h { |worker| [worker.klass.to_s, ::Gitlab::SidekiqConfig::WorkerRouter.global.route(worker.klass)] }
+ end
+
+ # Like worker_queue_mappings, but only for the queues running in
+ # the current Sidekiq process
+ def current_worker_queue_mappings
+ worker_queue_mappings
+ .select { |worker, queue| Sidekiq.options[:queues].include?(queue) }
+ .to_h
+ end
+
private
def find_workers(root, ee:)