diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-20 16:18:24 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-20 16:18:24 +0300 |
commit | 0653e08efd039a5905f3fa4f6e9cef9f5d2f799c (patch) | |
tree | 4dcc884cf6d81db44adae4aa99f8ec1233a41f55 /lib/gitlab/sidekiq_queue.rb | |
parent | 744144d28e3e7fddc117924fef88de5d9674fe4c (diff) |
Add latest changes from gitlab-org/gitlab@14-3-stable-eev14.3.0-rc42
Diffstat (limited to 'lib/gitlab/sidekiq_queue.rb')
-rw-r--r-- | lib/gitlab/sidekiq_queue.rb | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/gitlab/sidekiq_queue.rb b/lib/gitlab/sidekiq_queue.rb index eb3a8e3d497..67a9d8120d8 100644 --- a/lib/gitlab/sidekiq_queue.rb +++ b/lib/gitlab/sidekiq_queue.rb @@ -7,6 +7,9 @@ module Gitlab NoMetadataError = Class.new(StandardError) InvalidQueueError = Class.new(StandardError) + WORKER_KEY = 'worker_class' + ALLOWED_KEYS = Gitlab::ApplicationContext::KNOWN_KEYS + [WORKER_KEY] + attr_reader :queue_name def initialize(queue_name) @@ -21,8 +24,8 @@ module Gitlab job_search_metadata = search_metadata .stringify_keys - .slice(*Gitlab::ApplicationContext::KNOWN_KEYS) - .transform_keys { |key| "meta.#{key}" } + .slice(*ALLOWED_KEYS) + .transform_keys(&method(:transform_key)) .compact raise NoMetadataError if job_search_metadata.empty? @@ -49,6 +52,14 @@ module Gitlab private + def transform_key(key) + if Gitlab::ApplicationContext::KNOWN_KEYS.include?(key) + "meta.#{key}" + elsif key == WORKER_KEY + 'class' + end + end + def queue strong_memoize(:queue) do # Sidekiq::Queue.new always returns a queue, even if it doesn't |