Merge branch 'ce-rd-extract-ee-specific-sidekiq-queue-config' into 'master'
Backport of gitlab-ee!8470 See merge request gitlab-org/gitlab-ce!23150
This commit is contained in:
commit
4ec9009502
4 changed files with 14 additions and 7 deletions
|
@ -81,9 +81,9 @@
|
|||
|
||||
- todos_destroyer:todos_destroyer_confidential_issue
|
||||
- todos_destroyer:todos_destroyer_entity_leave
|
||||
- todos_destroyer:todos_destroyer_group_private
|
||||
- todos_destroyer:todos_destroyer_project_private
|
||||
- todos_destroyer:todos_destroyer_private_features
|
||||
- todos_destroyer:todos_destroyer_group_private
|
||||
|
||||
- default
|
||||
- mailers # ActionMailer::DeliveryJob.queue_name
|
||||
|
|
|
@ -17,8 +17,8 @@ would be `process_something`. If you're not sure what queue a worker uses,
|
|||
you can find it using `SomeWorker.queue`. There is almost never a reason to
|
||||
manually override the queue name using `sidekiq_options queue: :some_queue`.
|
||||
|
||||
You must always add any new queues to `app/workers/all_queues.yml` otherwise
|
||||
your worker will not run.
|
||||
You must always add any new queues to `app/workers/all_queues.yml` or `ee/app/workers/all_queues.yml`
|
||||
otherwise your worker will not run.
|
||||
|
||||
## Queue Namespaces
|
||||
|
||||
|
|
|
@ -5,11 +5,18 @@ require 'set'
|
|||
|
||||
module Gitlab
|
||||
module SidekiqConfig
|
||||
QUEUE_CONFIG_PATHS = %w[app/workers/all_queues.yml ee/app/workers/all_queues.yml].freeze
|
||||
|
||||
# This method is called by `bin/sidekiq-cluster` in EE, which runs outside
|
||||
# of bundler/Rails context, so we cannot use any gem or Rails methods.
|
||||
def self.worker_queues(rails_path = Rails.root.to_s)
|
||||
@worker_queues ||= {}
|
||||
@worker_queues[rails_path] ||= YAML.load_file(File.join(rails_path, 'app/workers/all_queues.yml'))
|
||||
|
||||
@worker_queues[rails_path] ||= QUEUE_CONFIG_PATHS.flat_map do |path|
|
||||
full_path = File.join(rails_path, path)
|
||||
|
||||
File.exist?(full_path) ? YAML.load_file(full_path) : []
|
||||
end
|
||||
end
|
||||
|
||||
# This method is called by `bin/sidekiq-cluster` in EE, which runs outside
|
||||
|
|
|
@ -9,7 +9,7 @@ describe 'Every Sidekiq worker' do
|
|||
expect(Gitlab::SidekiqConfig.cron_workers.map(&:queue)).to all(start_with('cronjob:'))
|
||||
end
|
||||
|
||||
it 'has its queue in app/workers/all_queues.yml', :aggregate_failures do
|
||||
it 'has its queue in Gitlab::SidekiqConfig::QUEUE_CONFIG_PATHS', :aggregate_failures do
|
||||
file_worker_queues = Gitlab::SidekiqConfig.worker_queues.to_set
|
||||
|
||||
worker_queues = Gitlab::SidekiqConfig.workers.map(&:queue).to_set
|
||||
|
@ -17,10 +17,10 @@ describe 'Every Sidekiq worker' do
|
|||
worker_queues << 'default'
|
||||
|
||||
missing_from_file = worker_queues - file_worker_queues
|
||||
expect(missing_from_file).to be_empty, "expected #{missing_from_file.to_a.inspect} to be in app/workers/all_queues.yml"
|
||||
expect(missing_from_file).to be_empty, "expected #{missing_from_file.to_a.inspect} to be in Gitlab::SidekiqConfig::QUEUE_CONFIG_PATHS"
|
||||
|
||||
unncessarily_in_file = file_worker_queues - worker_queues
|
||||
expect(unncessarily_in_file).to be_empty, "expected #{unncessarily_in_file.to_a.inspect} not to be in app/workers/all_queues.yml"
|
||||
expect(unncessarily_in_file).to be_empty, "expected #{unncessarily_in_file.to_a.inspect} not to be in Gitlab::SidekiqConfig::QUEUE_CONFIG_PATHS"
|
||||
end
|
||||
|
||||
it 'has its queue or namespace in config/sidekiq_queues.yml', :aggregate_failures do
|
||||
|
|
Loading…
Reference in a new issue