diff options
Diffstat (limited to 'lib/tasks/gitlab/sidekiq.rake')
-rw-r--r-- | lib/tasks/gitlab/sidekiq.rake | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/tasks/gitlab/sidekiq.rake b/lib/tasks/gitlab/sidekiq.rake index 6f00db42d78..6f5c3a86dd3 100644 --- a/lib/tasks/gitlab/sidekiq.rake +++ b/lib/tasks/gitlab/sidekiq.rake @@ -8,6 +8,29 @@ namespace :gitlab do File.write(path, banner + YAML.dump(object).gsub(/ *$/m, '')) end + namespace :migrate_jobs do + def mappings + ::Gitlab::SidekiqConfig + .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 + + desc 'GitLab | Sidekiq | Migrate jobs in the scheduled set to new queue names' + task schedule: :environment do + ::Gitlab::SidekiqMigrateJobs + .new('schedule', logger: Logger.new($stdout)) + .execute(mappings) + end + + desc 'GitLab | Sidekiq | Migrate jobs in the retry set to new queue names' + task retry: :environment do + ::Gitlab::SidekiqMigrateJobs + .new('retry', logger: Logger.new($stdout)) + .execute(mappings) + end + end + namespace :all_queues_yml do desc 'GitLab | Sidekiq | Generate all_queues.yml based on worker definitions' task generate: :environment do |