diff --git a/app/workers/admin_email_worker.rb b/app/workers/admin_email_worker.rb index c2dc955b27c1eedb4612807ab52db79cd7fa7d98..bec0a003a1c3179d65c516585709c8091daad2d6 100644 --- a/app/workers/admin_email_worker.rb +++ b/app/workers/admin_email_worker.rb @@ -1,5 +1,5 @@ class AdminEmailWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/authorized_projects_worker.rb b/app/workers/authorized_projects_worker.rb index 55d8d0c69d161cc5937f4fa073bcf5b5557fcdd3..d4f334ec3b893a6e4fc50ef4db0bce5373b47d56 100644 --- a/app/workers/authorized_projects_worker.rb +++ b/app/workers/authorized_projects_worker.rb @@ -1,6 +1,5 @@ class AuthorizedProjectsWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker # Schedules multiple jobs and waits for them to be completed. def self.bulk_perform_and_wait(args_list) diff --git a/app/workers/background_migration_worker.rb b/app/workers/background_migration_worker.rb index 45ce49bb5c0b9432d52e4b7fe0ca0383accbe9d2..65791c4eaba5494aa28053a256329f9a5734eec9 100644 --- a/app/workers/background_migration_worker.rb +++ b/app/workers/background_migration_worker.rb @@ -1,6 +1,5 @@ class BackgroundMigrationWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker # Enqueues a number of jobs in bulk. # diff --git a/app/workers/build_coverage_worker.rb b/app/workers/build_coverage_worker.rb index cd4af85d047175e3c289c2ecd7784f91511ad4ab..62b212c79be56dc71da3a3946e5a48cf7d226e1e 100644 --- a/app/workers/build_coverage_worker.rb +++ b/app/workers/build_coverage_worker.rb @@ -1,5 +1,5 @@ class BuildCoverageWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue def perform(build_id) diff --git a/app/workers/build_finished_worker.rb b/app/workers/build_finished_worker.rb index c77fe074c7319606752c98a65d253f5b52700e64..0fc7a1635c88b20672a133d2c869b7f41643315e 100644 --- a/app/workers/build_finished_worker.rb +++ b/app/workers/build_finished_worker.rb @@ -1,5 +1,5 @@ class BuildFinishedWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue enqueue_in group: :processing diff --git a/app/workers/build_hooks_worker.rb b/app/workers/build_hooks_worker.rb index dedaf2835e61085dda243bfab959550fa4234b2d..6705a1c2709a025a0cb7699449fcf1434f9c8650 100644 --- a/app/workers/build_hooks_worker.rb +++ b/app/workers/build_hooks_worker.rb @@ -1,5 +1,5 @@ class BuildHooksWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue enqueue_in group: :hooks diff --git a/app/workers/build_queue_worker.rb b/app/workers/build_queue_worker.rb index e5ceb9ef71518c302a27f808b9b232fb610071ed..fc775a84dc09d85bc5f0fbe569d874a078a26c52 100644 --- a/app/workers/build_queue_worker.rb +++ b/app/workers/build_queue_worker.rb @@ -1,5 +1,5 @@ class BuildQueueWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue enqueue_in group: :processing diff --git a/app/workers/build_success_worker.rb b/app/workers/build_success_worker.rb index 20ec24bd18ab09439510dc3eb290917250a23293..ec049821ad7ae3a3f2930acf75ffa6f49297d2d2 100644 --- a/app/workers/build_success_worker.rb +++ b/app/workers/build_success_worker.rb @@ -1,5 +1,5 @@ class BuildSuccessWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue enqueue_in group: :processing diff --git a/app/workers/build_trace_sections_worker.rb b/app/workers/build_trace_sections_worker.rb index 8c57e8f767b022c517475d277a566f81dd173a52..c0f5c144e10f6881573cd5cb8a63a4fa0a5ef7db 100644 --- a/app/workers/build_trace_sections_worker.rb +++ b/app/workers/build_trace_sections_worker.rb @@ -1,5 +1,5 @@ class BuildTraceSectionsWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue def perform(build_id) diff --git a/app/workers/cluster_install_app_worker.rb b/app/workers/cluster_install_app_worker.rb index 899aed904e4c5cde3b22f4bbee3e52044bc08717..f771cb4939f9fd500a1432f572c9003e68541eb1 100644 --- a/app/workers/cluster_install_app_worker.rb +++ b/app/workers/cluster_install_app_worker.rb @@ -1,5 +1,5 @@ class ClusterInstallAppWorker - include Sidekiq::Worker + include ApplicationWorker include ClusterQueue include ClusterApplications diff --git a/app/workers/cluster_provision_worker.rb b/app/workers/cluster_provision_worker.rb index b01f97084246712fb43a7be0f69b41b395ab5b1f..1ab4de3b6479b6c82077acfc1f03e9d3ad8211ef 100644 --- a/app/workers/cluster_provision_worker.rb +++ b/app/workers/cluster_provision_worker.rb @@ -1,5 +1,5 @@ class ClusterProvisionWorker - include Sidekiq::Worker + include ApplicationWorker include ClusterQueue def perform(cluster_id) diff --git a/app/workers/cluster_wait_for_app_installation_worker.rb b/app/workers/cluster_wait_for_app_installation_worker.rb index 4bb8c293e5d61c4f9585c37058f58849b01a43de..d564d5e48bf7abeb1788cdd9fa19ef0234857324 100644 --- a/app/workers/cluster_wait_for_app_installation_worker.rb +++ b/app/workers/cluster_wait_for_app_installation_worker.rb @@ -1,5 +1,5 @@ class ClusterWaitForAppInstallationWorker - include Sidekiq::Worker + include ApplicationWorker include ClusterQueue include ClusterApplications diff --git a/app/workers/concerns/application_worker.rb b/app/workers/concerns/application_worker.rb new file mode 100644 index 0000000000000000000000000000000000000000..bf1ecaa0c6d22ea071f269033e9f9e183a392577 --- /dev/null +++ b/app/workers/concerns/application_worker.rb @@ -0,0 +1,25 @@ +Sidekiq::Worker.extend ActiveSupport::Concern + +module ApplicationWorker + extend ActiveSupport::Concern + + include Sidekiq::Worker + + included do + sidekiq_options queue: base_queue_name + end + + module ClassMethods + def base_queue_name + name + .sub(/\AGitlab::/, '') + .sub(/Worker\z/, '') + .underscore + .tr('/', '_') + end + + def queue + get_sidekiq_options['queue'].to_s + end + end +end diff --git a/app/workers/concerns/dedicated_sidekiq_queue.rb b/app/workers/concerns/dedicated_sidekiq_queue.rb deleted file mode 100644 index 132bae6022b4c1da9bb22ba986ab139049c5d00a..0000000000000000000000000000000000000000 --- a/app/workers/concerns/dedicated_sidekiq_queue.rb +++ /dev/null @@ -1,9 +0,0 @@ -# Concern that sets the queue of a Sidekiq worker based on the worker's class -# name/namespace. -module DedicatedSidekiqQueue - extend ActiveSupport::Concern - - included do - sidekiq_options queue: name.sub(/Worker\z/, '').underscore.tr('/', '_') - end -end diff --git a/app/workers/concerns/gitlab/github_import/object_importer.rb b/app/workers/concerns/gitlab/github_import/object_importer.rb index 67e36c811de9c459327c3c83f96dc63b65c13149..9a9fbaad653c78a030ed8de29cef2ec3575636cd 100644 --- a/app/workers/concerns/gitlab/github_import/object_importer.rb +++ b/app/workers/concerns/gitlab/github_import/object_importer.rb @@ -8,7 +8,7 @@ module ObjectImporter extend ActiveSupport::Concern included do - include Sidekiq::Worker + include ApplicationWorker include GithubImport::Queue include ReschedulingMethods include NotifyUponDeath diff --git a/app/workers/create_gpg_signature_worker.rb b/app/workers/create_gpg_signature_worker.rb index 9b5ff17aafa300ca352185efd7f5fca9caa1cd54..f371731f68c95180e2ca547a6a0855a3ee2e19fd 100644 --- a/app/workers/create_gpg_signature_worker.rb +++ b/app/workers/create_gpg_signature_worker.rb @@ -1,6 +1,5 @@ class CreateGpgSignatureWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(commit_sha, project_id) project = Project.find_by(id: project_id) diff --git a/app/workers/create_pipeline_worker.rb b/app/workers/create_pipeline_worker.rb index 865ad1ba420a9c98298048ebd150946e72a4659a..00cd7b85b9f48b382ca12b7383763bb4c04a6485 100644 --- a/app/workers/create_pipeline_worker.rb +++ b/app/workers/create_pipeline_worker.rb @@ -1,5 +1,5 @@ class CreatePipelineWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue enqueue_in group: :creation diff --git a/app/workers/delete_merged_branches_worker.rb b/app/workers/delete_merged_branches_worker.rb index f870da4ecfdd43aee646777e5676d0a6fb3d2e53..07cd1f02fb59bb10923212daeebc55236e9fc60d 100644 --- a/app/workers/delete_merged_branches_worker.rb +++ b/app/workers/delete_merged_branches_worker.rb @@ -1,6 +1,5 @@ class DeleteMergedBranchesWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(project_id, user_id) begin diff --git a/app/workers/delete_user_worker.rb b/app/workers/delete_user_worker.rb index 3340a7be4fe2678e0de9b4bb03fe0fde2b35522b..6c431b02979dffcce4cc5e147a16c28557c06a0c 100644 --- a/app/workers/delete_user_worker.rb +++ b/app/workers/delete_user_worker.rb @@ -1,6 +1,5 @@ class DeleteUserWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(current_user_id, delete_user_id, options = {}) delete_user = User.find(delete_user_id) diff --git a/app/workers/email_receiver_worker.rb b/app/workers/email_receiver_worker.rb index 1afa24c8e2afbcab7c26cc2ec5b5947203b97953..fff7cf9d26ce29b953e332b3c8f1a3f17093e7e5 100644 --- a/app/workers/email_receiver_worker.rb +++ b/app/workers/email_receiver_worker.rb @@ -1,6 +1,5 @@ class EmailReceiverWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(raw) return unless Gitlab::IncomingEmail.enabled? diff --git a/app/workers/emails_on_push_worker.rb b/app/workers/emails_on_push_worker.rb index f5ccc84c160c8585158fbce902c279ed2c1472c9..21da27973fece784113d1021747cd5ac689f9e16 100644 --- a/app/workers/emails_on_push_worker.rb +++ b/app/workers/emails_on_push_worker.rb @@ -1,6 +1,5 @@ class EmailsOnPushWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker attr_reader :email, :skip_premailer diff --git a/app/workers/expire_build_artifacts_worker.rb b/app/workers/expire_build_artifacts_worker.rb index a27585fd3897aa1fe9fb9ce9885bfc77b77e4d99..73ab42110801193e022f6e2eebab5aff412fb36a 100644 --- a/app/workers/expire_build_artifacts_worker.rb +++ b/app/workers/expire_build_artifacts_worker.rb @@ -1,5 +1,5 @@ class ExpireBuildArtifactsWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/expire_build_instance_artifacts_worker.rb b/app/workers/expire_build_instance_artifacts_worker.rb index 7b59e976492246def1c45e7ccfef35f237cacf53..234b4357cf7fe2d5486ca126ac694992c0acaa67 100644 --- a/app/workers/expire_build_instance_artifacts_worker.rb +++ b/app/workers/expire_build_instance_artifacts_worker.rb @@ -1,6 +1,5 @@ class ExpireBuildInstanceArtifactsWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(build_id) build = Ci::Build diff --git a/app/workers/expire_job_cache_worker.rb b/app/workers/expire_job_cache_worker.rb index 98a7500bffe33d062a61f2caf1d7961ba7d62920..a591e2da5195835b72da3bd87a6f4c73d40da859 100644 --- a/app/workers/expire_job_cache_worker.rb +++ b/app/workers/expire_job_cache_worker.rb @@ -1,5 +1,5 @@ class ExpireJobCacheWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue enqueue_in group: :cache diff --git a/app/workers/expire_pipeline_cache_worker.rb b/app/workers/expire_pipeline_cache_worker.rb index 93b67497ba6846bd37be9607f66db9fe195fc521..211a05f120ca38ae1079a1bc703dc7db6662aceb 100644 --- a/app/workers/expire_pipeline_cache_worker.rb +++ b/app/workers/expire_pipeline_cache_worker.rb @@ -1,5 +1,5 @@ class ExpirePipelineCacheWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue enqueue_in group: :cache diff --git a/app/workers/geo/base_scheduler_worker.rb b/app/workers/geo/base_scheduler_worker.rb index 3f16e529691e10d05254ed58cc37064981b813e9..f21d71dc4dc96d963e17921f1cd3ef1d88ecc90b 100644 --- a/app/workers/geo/base_scheduler_worker.rb +++ b/app/workers/geo/base_scheduler_worker.rb @@ -1,6 +1,6 @@ module Geo class BaseSchedulerWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue include ExclusiveLeaseGuard diff --git a/app/workers/geo/file_download_worker.rb b/app/workers/geo/file_download_worker.rb index 2a6a61a21da34378fe428cba3412d8d1d1a8bdfa..a4c77eb2e25dea14ebc6ec169484353070ebcf5e 100644 --- a/app/workers/geo/file_download_worker.rb +++ b/app/workers/geo/file_download_worker.rb @@ -1,7 +1,8 @@ module Geo class FileDownloadWorker - include Sidekiq::Worker - sidekiq_options queue: :geo_file_download, retry: 3, dead: false + include ApplicationWorker + + sidekiq_options retry: 3, dead: false def perform(object_type, object_id) Geo::FileDownloadService.new(object_type.to_sym, object_id).execute diff --git a/app/workers/geo/file_removal_worker.rb b/app/workers/geo/file_removal_worker.rb index 978a4abc91c556f485538c02e5808408344c368f..96dd438fc8b0b50978f6097ca344412a627b26b9 100644 --- a/app/workers/geo/file_removal_worker.rb +++ b/app/workers/geo/file_removal_worker.rb @@ -1,9 +1,8 @@ module Geo class FileRemovalWorker - include Sidekiq::Worker + include ApplicationWorker include Gitlab::Geo::LogHelpers - - sidekiq_options queue: :geo + include GeoQueue def perform(file_path) remove_file!(file_path) diff --git a/app/workers/geo/hashed_storage_attachments_migration_worker.rb b/app/workers/geo/hashed_storage_attachments_migration_worker.rb index 0afc1ef4a34ce49d6c26ddf3743955817031385b..a082a6d71177e34bdc9a78ac0b9ef489b494da9a 100644 --- a/app/workers/geo/hashed_storage_attachments_migration_worker.rb +++ b/app/workers/geo/hashed_storage_attachments_migration_worker.rb @@ -1,6 +1,6 @@ module Geo class HashedStorageAttachmentsMigrationWorker - include Sidekiq::Worker + include ApplicationWorker include GeoQueue def perform(project_id, old_attachments_path, new_attachments_path) diff --git a/app/workers/geo/hashed_storage_migration_worker.rb b/app/workers/geo/hashed_storage_migration_worker.rb index 438c76d195c1e3910cbbf8b4e88c9eb1f65f8b75..54f402c4d203eac135cf223510af7a9150eab170 100644 --- a/app/workers/geo/hashed_storage_migration_worker.rb +++ b/app/workers/geo/hashed_storage_migration_worker.rb @@ -1,6 +1,6 @@ module Geo class HashedStorageMigrationWorker - include Sidekiq::Worker + include ApplicationWorker include GeoQueue def perform(project_id, old_disk_path, new_disk_path, old_storage_version) diff --git a/app/workers/geo/metrics_update_worker.rb b/app/workers/geo/metrics_update_worker.rb index 5753dd1335b1e4fb136f7b7cb0dd6212eacfe8d9..8574297547d6b7af3c98828ecb31dfd3c751cc27 100644 --- a/app/workers/geo/metrics_update_worker.rb +++ b/app/workers/geo/metrics_update_worker.rb @@ -1,6 +1,6 @@ module Geo class MetricsUpdateWorker - include Sidekiq::Worker + include ApplicationWorker include ExclusiveLeaseGuard include CronjobQueue diff --git a/app/workers/geo/project_sync_worker.rb b/app/workers/geo/project_sync_worker.rb index 85c667b19a529417499b07739e6cb3f503c5c8a7..da4be4bc962cbd5f5fa46dad034ee808bc546292 100644 --- a/app/workers/geo/project_sync_worker.rb +++ b/app/workers/geo/project_sync_worker.rb @@ -1,8 +1,8 @@ module Geo class ProjectSyncWorker - include Sidekiq::Worker + include ApplicationWorker - sidekiq_options queue: :geo_project_sync, retry: 3, dead: false + sidekiq_options retry: 3, dead: false sidekiq_retry_in { |count| 30 * count } diff --git a/app/workers/geo/prune_event_log_worker.rb b/app/workers/geo/prune_event_log_worker.rb index eed396c0bce14b4a6f0413c250f547fd77d8a928..f3548d88f0bf2e328185827aebce7cb55ecd2535 100644 --- a/app/workers/geo/prune_event_log_worker.rb +++ b/app/workers/geo/prune_event_log_worker.rb @@ -1,6 +1,6 @@ module Geo class PruneEventLogWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue include ExclusiveLeaseGuard include ::Gitlab::Geo::LogHelpers diff --git a/app/workers/geo/rename_repository_worker.rb b/app/workers/geo/rename_repository_worker.rb index 44f83b805889eacd1093819c8ec4088f3c86e49a..4cea329d0a70d0f4e98662cc100a46e982e1ac1f 100644 --- a/app/workers/geo/rename_repository_worker.rb +++ b/app/workers/geo/rename_repository_worker.rb @@ -1,6 +1,6 @@ module Geo class RenameRepositoryWorker - include Sidekiq::Worker + include ApplicationWorker include GeoQueue def perform(project_id, old_disk_path, new_disk_path) diff --git a/app/workers/geo/repositories_clean_up_worker.rb b/app/workers/geo/repositories_clean_up_worker.rb index fc928a1f18a0e2097a1900cef374d173bb3d77d3..4448f4aa68bdcfc42b42ec27b3cb8103979adf73 100644 --- a/app/workers/geo/repositories_clean_up_worker.rb +++ b/app/workers/geo/repositories_clean_up_worker.rb @@ -1,6 +1,6 @@ module Geo class RepositoriesCleanUpWorker - include Sidekiq::Worker + include ApplicationWorker include GeoQueue include Gitlab::ShellAdapter include ExclusiveLeaseGuard diff --git a/app/workers/geo_repository_destroy_worker.rb b/app/workers/geo_repository_destroy_worker.rb index b0a9c710f283cd5179ed5aef61fef714d7d7e036..b8efca3ebc6f79f417ee05edf98de58aaf68f778 100644 --- a/app/workers/geo_repository_destroy_worker.rb +++ b/app/workers/geo_repository_destroy_worker.rb @@ -1,5 +1,5 @@ class GeoRepositoryDestroyWorker - include Sidekiq::Worker + include ApplicationWorker include GeoQueue include Gitlab::ShellAdapter diff --git a/app/workers/git_garbage_collect_worker.rb b/app/workers/git_garbage_collect_worker.rb index ec65d3ff65ea30a49658c93ab395b06146eaea15..8e26275669e36a6ffb54aa12a73ed47848fbaa5f 100644 --- a/app/workers/git_garbage_collect_worker.rb +++ b/app/workers/git_garbage_collect_worker.rb @@ -1,6 +1,5 @@ class GitGarbageCollectWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker include Gitlab::CurrentSettings sidekiq_options retry: false diff --git a/app/workers/gitlab/github_import/advance_stage_worker.rb b/app/workers/gitlab/github_import/advance_stage_worker.rb index 877f88c043f42ed35deccfd373c136558eada73f..400396d5755e9b545dcc78281578d574883799c8 100644 --- a/app/workers/gitlab/github_import/advance_stage_worker.rb +++ b/app/workers/gitlab/github_import/advance_stage_worker.rb @@ -7,7 +7,7 @@ module GithubImport # been completed this worker will advance the import process to the next # stage. class AdvanceStageWorker - include Sidekiq::Worker + include ApplicationWorker sidekiq_options queue: 'github_importer_advance_stage', dead: false diff --git a/app/workers/gitlab/github_import/refresh_import_jid_worker.rb b/app/workers/gitlab/github_import/refresh_import_jid_worker.rb index 45a3892722533851d9d2cfbb6980ea797fd9a5b9..7108b531bc22543f055da70b6cc1c9db90d4f5ed 100644 --- a/app/workers/gitlab/github_import/refresh_import_jid_worker.rb +++ b/app/workers/gitlab/github_import/refresh_import_jid_worker.rb @@ -3,7 +3,7 @@ module Gitlab module GithubImport class RefreshImportJidWorker - include Sidekiq::Worker + include ApplicationWorker include GithubImport::Queue # The interval to schedule new instances of this job at. diff --git a/app/workers/gitlab/github_import/stage/finish_import_worker.rb b/app/workers/gitlab/github_import/stage/finish_import_worker.rb index 1a09497780aa6c397b2bc151c71a60736a0771b8..073d6608082140659a9adf91be0ddffa6ab6b6ca 100644 --- a/app/workers/gitlab/github_import/stage/finish_import_worker.rb +++ b/app/workers/gitlab/github_import/stage/finish_import_worker.rb @@ -4,7 +4,7 @@ module Gitlab module GithubImport module Stage class FinishImportWorker - include Sidekiq::Worker + include ApplicationWorker include GithubImport::Queue include StageMethods diff --git a/app/workers/gitlab/github_import/stage/import_base_data_worker.rb b/app/workers/gitlab/github_import/stage/import_base_data_worker.rb index f8a3684c6ba579c81be2d6b7bc6fb541b49b0dad..5726fbb573d8408ac0eb0e5e070c83b2cab22a30 100644 --- a/app/workers/gitlab/github_import/stage/import_base_data_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_base_data_worker.rb @@ -4,7 +4,7 @@ module Gitlab module GithubImport module Stage class ImportBaseDataWorker - include Sidekiq::Worker + include ApplicationWorker include GithubImport::Queue include StageMethods diff --git a/app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb b/app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb index e110b7c1c36f755b9c9fada3049bf254647cc227..7007754ff2e6f5884d9da9797571373b2dcd64c7 100644 --- a/app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb @@ -4,7 +4,7 @@ module Gitlab module GithubImport module Stage class ImportIssuesAndDiffNotesWorker - include Sidekiq::Worker + include ApplicationWorker include GithubImport::Queue include StageMethods diff --git a/app/workers/gitlab/github_import/stage/import_notes_worker.rb b/app/workers/gitlab/github_import/stage/import_notes_worker.rb index 9810ed25cf90abf57cc0bd5b9000b171dd938467..5f4678a595f06ee3e574643b492fce49fe9831f4 100644 --- a/app/workers/gitlab/github_import/stage/import_notes_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_notes_worker.rb @@ -4,7 +4,7 @@ module Gitlab module GithubImport module Stage class ImportNotesWorker - include Sidekiq::Worker + include ApplicationWorker include GithubImport::Queue include StageMethods diff --git a/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb b/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb index c531f26e89730e83642424ddd3003d5a16325660..1c5a7139802cccd62ff27f3784167a3510b8c101 100644 --- a/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb @@ -4,7 +4,7 @@ module Gitlab module GithubImport module Stage class ImportPullRequestsWorker - include Sidekiq::Worker + include ApplicationWorker include GithubImport::Queue include StageMethods diff --git a/app/workers/gitlab/github_import/stage/import_repository_worker.rb b/app/workers/gitlab/github_import/stage/import_repository_worker.rb index aa5762e773d8082565d1bf6f310ded67a6877449..4d16cef1130a6ea554ecccb1d8aa89a8a75b50a4 100644 --- a/app/workers/gitlab/github_import/stage/import_repository_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_repository_worker.rb @@ -4,7 +4,7 @@ module Gitlab module GithubImport module Stage class ImportRepositoryWorker - include Sidekiq::Worker + include ApplicationWorker include GithubImport::Queue include StageMethods diff --git a/app/workers/gitlab_shell_worker.rb b/app/workers/gitlab_shell_worker.rb index 0ec871e00e1694e74638130ce3238793a38921b1..a0028e41332a808228762ca7b176ad905bc0d9ef 100644 --- a/app/workers/gitlab_shell_worker.rb +++ b/app/workers/gitlab_shell_worker.rb @@ -1,7 +1,6 @@ class GitlabShellWorker - include Sidekiq::Worker + include ApplicationWorker include Gitlab::ShellAdapter - include DedicatedSidekiqQueue def perform(action, *arg) gitlab_shell.__send__(action, *arg) # rubocop:disable GitlabSecurity/PublicSend diff --git a/app/workers/gitlab_usage_ping_worker.rb b/app/workers/gitlab_usage_ping_worker.rb index 0a55aab63fd8a5bafbb2934068aa3de261e332a9..6dd281b1147d5d6c55f4a44bc1b491ba74e95062 100644 --- a/app/workers/gitlab_usage_ping_worker.rb +++ b/app/workers/gitlab_usage_ping_worker.rb @@ -1,7 +1,7 @@ class GitlabUsagePingWorker LEASE_TIMEOUT = 86400 - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/group_destroy_worker.rb b/app/workers/group_destroy_worker.rb index bd8e212e928dade6d9539d1aa875c7f3bb74418f..f577b310b206107dfe5a602d9a5962425df30903 100644 --- a/app/workers/group_destroy_worker.rb +++ b/app/workers/group_destroy_worker.rb @@ -1,6 +1,5 @@ class GroupDestroyWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker include ExceptionBacktrace def perform(group_id, user_id) diff --git a/app/workers/import_export_project_cleanup_worker.rb b/app/workers/import_export_project_cleanup_worker.rb index 7957ed807ab07696915e3716b632c2c0c7863d33..9788c8df3a3fa4308a1ac664e14d4348cc312a98 100644 --- a/app/workers/import_export_project_cleanup_worker.rb +++ b/app/workers/import_export_project_cleanup_worker.rb @@ -1,5 +1,5 @@ class ImportExportProjectCleanupWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/invalid_gpg_signature_update_worker.rb b/app/workers/invalid_gpg_signature_update_worker.rb index db6b1ea8e8de8728a12fd7bf1cf07c52a83a5843..6774ab307c602c15a03398e105e3bc291b7a2e6d 100644 --- a/app/workers/invalid_gpg_signature_update_worker.rb +++ b/app/workers/invalid_gpg_signature_update_worker.rb @@ -1,6 +1,5 @@ class InvalidGpgSignatureUpdateWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(gpg_key_id) gpg_key = GpgKey.find_by(id: gpg_key_id) diff --git a/app/workers/irker_worker.rb b/app/workers/irker_worker.rb index 311fc187e49ce9f4d1a7cd6167e452a304d3005c..9ae5456be4cc3f5d51d001866ee9fe75643c216f 100644 --- a/app/workers/irker_worker.rb +++ b/app/workers/irker_worker.rb @@ -2,8 +2,7 @@ require 'socket' class IrkerWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(project_id, chans, colors, push_data, settings) project = Project.find(project_id) diff --git a/app/workers/merge_worker.rb b/app/workers/merge_worker.rb index 48e2da338f637a95b8ee04d9c72e5acca6c58b7d..ba832fe30c6b2baa81237c1de847063cc6087932 100644 --- a/app/workers/merge_worker.rb +++ b/app/workers/merge_worker.rb @@ -1,6 +1,5 @@ class MergeWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(merge_request_id, current_user_id, params) params = params.with_indifferent_access diff --git a/app/workers/namespaceless_project_destroy_worker.rb b/app/workers/namespaceless_project_destroy_worker.rb index f1cd17694211520ec976dc903ecdd0ddc84a8bf5..13d750e5876425ee2e7dd9e8e0c00e297247f38b 100644 --- a/app/workers/namespaceless_project_destroy_worker.rb +++ b/app/workers/namespaceless_project_destroy_worker.rb @@ -5,8 +5,7 @@ # The worker will reject doing anything for projects that *do* have a # namespace. For those use ProjectDestroyWorker instead. class NamespacelessProjectDestroyWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker include ExceptionBacktrace def self.bulk_perform_async(args_list) diff --git a/app/workers/new_issue_worker.rb b/app/workers/new_issue_worker.rb index d9a8e892e906e46b034389636e80766f7e0e707f..3bc030f9c620fa94e9635590136097f2c5d6043d 100644 --- a/app/workers/new_issue_worker.rb +++ b/app/workers/new_issue_worker.rb @@ -1,6 +1,5 @@ class NewIssueWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker include NewIssuable def perform(issue_id, user_id) diff --git a/app/workers/new_merge_request_worker.rb b/app/workers/new_merge_request_worker.rb index 1910c49015958b6e908f281613d75aa2f305528e..bda2a0ab59da61b7f64ccbbb70a52e89d1dea051 100644 --- a/app/workers/new_merge_request_worker.rb +++ b/app/workers/new_merge_request_worker.rb @@ -1,6 +1,5 @@ class NewMergeRequestWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker include NewIssuable def perform(merge_request_id, user_id) diff --git a/app/workers/new_note_worker.rb b/app/workers/new_note_worker.rb index 926162b8c53a9eadcae6d8bb364981b2fa487419..67c54fbf10e05a127386c8129bd7cdc02fbd19ab 100644 --- a/app/workers/new_note_worker.rb +++ b/app/workers/new_note_worker.rb @@ -1,6 +1,5 @@ class NewNoteWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker # Keep extra parameter to preserve backwards compatibility with # old `NewNoteWorker` jobs (can remove later) diff --git a/app/workers/pages_worker.rb b/app/workers/pages_worker.rb index 64788da72999bf1754840b4a2e85920d7790a161..62f733c02fc43e8c5c15fc3c208ff10dee06f567 100644 --- a/app/workers/pages_worker.rb +++ b/app/workers/pages_worker.rb @@ -1,5 +1,5 @@ class PagesWorker - include Sidekiq::Worker + include ApplicationWorker sidekiq_options queue: :pages, retry: false diff --git a/app/workers/pipeline_hooks_worker.rb b/app/workers/pipeline_hooks_worker.rb index 30a75ec8435df5756d05858fea3ff8ad3332efae..661c29efe8868157e5db85dee06bc2e6a546ece6 100644 --- a/app/workers/pipeline_hooks_worker.rb +++ b/app/workers/pipeline_hooks_worker.rb @@ -1,5 +1,5 @@ class PipelineHooksWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue enqueue_in group: :hooks diff --git a/app/workers/pipeline_metrics_worker.rb b/app/workers/pipeline_metrics_worker.rb index 070943f1ecc956e3e6f899fd23b91b2f7b0afed7..d46d1f122fcfa72624fed7e5aba2ab53475029a3 100644 --- a/app/workers/pipeline_metrics_worker.rb +++ b/app/workers/pipeline_metrics_worker.rb @@ -1,5 +1,5 @@ class PipelineMetricsWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue def perform(pipeline_id) diff --git a/app/workers/pipeline_notification_worker.rb b/app/workers/pipeline_notification_worker.rb index cdb860b66758056253cff38cfb2883cbfe620d41..a9a1168a6e3a0d8cddee5790c4ea1c0b38a4f2bf 100644 --- a/app/workers/pipeline_notification_worker.rb +++ b/app/workers/pipeline_notification_worker.rb @@ -1,5 +1,5 @@ class PipelineNotificationWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue def perform(pipeline_id, recipients = nil) diff --git a/app/workers/pipeline_process_worker.rb b/app/workers/pipeline_process_worker.rb index 8c067d0508120a973a225d0e2e1fcb0b68e072ca..07dbf6a971eb575bbef9281559a7c6e68a4b0392 100644 --- a/app/workers/pipeline_process_worker.rb +++ b/app/workers/pipeline_process_worker.rb @@ -1,5 +1,5 @@ class PipelineProcessWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue enqueue_in group: :processing diff --git a/app/workers/pipeline_schedule_worker.rb b/app/workers/pipeline_schedule_worker.rb index 7320db1065eb26b074c68c7f36151a80378d5acc..c49758878a4cc5a036cd62902cfbee8be1d8ccda 100644 --- a/app/workers/pipeline_schedule_worker.rb +++ b/app/workers/pipeline_schedule_worker.rb @@ -1,5 +1,5 @@ class PipelineScheduleWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/pipeline_success_worker.rb b/app/workers/pipeline_success_worker.rb index cb8bb2ffe757d64418d67e158a2c3380b7d1a440..68c40a259e174924062e620181575562f5f75b11 100644 --- a/app/workers/pipeline_success_worker.rb +++ b/app/workers/pipeline_success_worker.rb @@ -1,5 +1,5 @@ class PipelineSuccessWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue enqueue_in group: :processing diff --git a/app/workers/pipeline_update_worker.rb b/app/workers/pipeline_update_worker.rb index 5fa399dff4c89b31ab25400d2ebb0ab335d7d18e..24a8a9fbed531a7f858fc02e119c9ae8b575a190 100644 --- a/app/workers/pipeline_update_worker.rb +++ b/app/workers/pipeline_update_worker.rb @@ -1,5 +1,5 @@ class PipelineUpdateWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue enqueue_in group: :processing diff --git a/app/workers/post_receive.rb b/app/workers/post_receive.rb index 627a78d1e78877f0a2140b6e5be703db92f6dcca..adbc1373a4b065260660d514f5b4c1a2c6d9cad4 100644 --- a/app/workers/post_receive.rb +++ b/app/workers/post_receive.rb @@ -1,6 +1,5 @@ class PostReceive - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker prepend EE::PostReceive def perform(gl_repository, identifier, changes) diff --git a/app/workers/process_commit_worker.rb b/app/workers/process_commit_worker.rb index c0c03848a403b7d937a53ea5ba7cd6699ac8653a..52eebe475ecb3cbf51e38fec5de0c9c053ed5482 100644 --- a/app/workers/process_commit_worker.rb +++ b/app/workers/process_commit_worker.rb @@ -5,8 +5,7 @@ # Consider using an extra worker if you need to add any extra (and potentially # slow) processing of commits. class ProcessCommitWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker # project_id - The ID of the project this commit belongs to. # user_id - The ID of the user that pushed the commit. diff --git a/app/workers/project_cache_worker.rb b/app/workers/project_cache_worker.rb index 19736076938f1b6bf00d325134af325907cdf10f..ca7dd480322343947ecc8bdff9cb1753401ecd0b 100644 --- a/app/workers/project_cache_worker.rb +++ b/app/workers/project_cache_worker.rb @@ -1,7 +1,6 @@ # Worker for updating any project specific caches. class ProjectCacheWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker prepend EE::Workers::ProjectCacheWorker LEASE_TIMEOUT = 15.minutes.to_i diff --git a/app/workers/project_destroy_worker.rb b/app/workers/project_destroy_worker.rb index 3be7e686609a9a40eaace6cff70948b22ce780fc..1ba854ca4cb6c4b4d0b103189c5aa0bc41b12982 100644 --- a/app/workers/project_destroy_worker.rb +++ b/app/workers/project_destroy_worker.rb @@ -1,6 +1,5 @@ class ProjectDestroyWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker include ExceptionBacktrace def perform(project_id, user_id, params) diff --git a/app/workers/project_export_worker.rb b/app/workers/project_export_worker.rb index f13ac9e5db2896b9f10b7c2bd2c3c7b1ad1ad801..c100852374a1e05be0f4611e6a48aabbebc5353e 100644 --- a/app/workers/project_export_worker.rb +++ b/app/workers/project_export_worker.rb @@ -1,6 +1,5 @@ class ProjectExportWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker include ExceptionBacktrace sidekiq_options retry: 3 diff --git a/app/workers/project_migrate_hashed_storage_worker.rb b/app/workers/project_migrate_hashed_storage_worker.rb index 127aa6b9d7def76436216c1cd48c3f81cc8ea440..d01eb744e5d5bcbd11bd263ee8a796f907b2211f 100644 --- a/app/workers/project_migrate_hashed_storage_worker.rb +++ b/app/workers/project_migrate_hashed_storage_worker.rb @@ -1,6 +1,5 @@ class ProjectMigrateHashedStorageWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker LEASE_TIMEOUT = 30.seconds.to_i diff --git a/app/workers/project_service_worker.rb b/app/workers/project_service_worker.rb index 4883d848c53b6fa39b356830c976448d551a3db3..75c4b8b36632e231a7bf363a3e44c923b1ff8158 100644 --- a/app/workers/project_service_worker.rb +++ b/app/workers/project_service_worker.rb @@ -1,6 +1,5 @@ class ProjectServiceWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker sidekiq_options dead: false diff --git a/app/workers/propagate_service_template_worker.rb b/app/workers/propagate_service_template_worker.rb index 6b607451c7ab8c826b07df888cc2709837e9d48d..635a97c99afc89e394489b81f25771bf633f5149 100644 --- a/app/workers/propagate_service_template_worker.rb +++ b/app/workers/propagate_service_template_worker.rb @@ -1,7 +1,6 @@ # Worker for updating any project specific caches. class PropagateServiceTemplateWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker LEASE_TIMEOUT = 4.hours.to_i diff --git a/app/workers/prune_old_events_worker.rb b/app/workers/prune_old_events_worker.rb index 2b43bb19ad1a3b97de1283d09bb71aa242fee691..5ff62ab1369e7ce9c8386ab3ca184f2b28dafa8d 100644 --- a/app/workers/prune_old_events_worker.rb +++ b/app/workers/prune_old_events_worker.rb @@ -1,5 +1,5 @@ class PruneOldEventsWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/reactive_caching_worker.rb b/app/workers/reactive_caching_worker.rb index 18b8daf4e1e7571e1a786e285b4224a74d7cf7fc..ef3ddb9024bacf8106a0ff33f40de5e50bdcc607 100644 --- a/app/workers/reactive_caching_worker.rb +++ b/app/workers/reactive_caching_worker.rb @@ -1,6 +1,5 @@ class ReactiveCachingWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(class_name, id, *args) klass = begin diff --git a/app/workers/remove_expired_group_links_worker.rb b/app/workers/remove_expired_group_links_worker.rb index 2a619f834100cf278d74dab2a81482673a425069..7e64c3070a89cf33cd587dedf97276bc32a8bd8b 100644 --- a/app/workers/remove_expired_group_links_worker.rb +++ b/app/workers/remove_expired_group_links_worker.rb @@ -1,5 +1,5 @@ class RemoveExpiredGroupLinksWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/remove_expired_members_worker.rb b/app/workers/remove_expired_members_worker.rb index 31f652e5f9bc11f177393ff2c9f3761adfb17d20..d80b3b15840a1ac05853c54bd28e9ea80fa36783 100644 --- a/app/workers/remove_expired_members_worker.rb +++ b/app/workers/remove_expired_members_worker.rb @@ -1,5 +1,5 @@ class RemoveExpiredMembersWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/remove_old_web_hook_logs_worker.rb b/app/workers/remove_old_web_hook_logs_worker.rb index 555e1bb86919dc8ad0e2b3925cada873038e23ec..87fed42d7ce203107c4f2c2547c14ce8ca38a7c0 100644 --- a/app/workers/remove_old_web_hook_logs_worker.rb +++ b/app/workers/remove_old_web_hook_logs_worker.rb @@ -1,5 +1,5 @@ class RemoveOldWebHookLogsWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue WEB_HOOK_LOG_LIFETIME = 2.days diff --git a/app/workers/remove_unreferenced_lfs_objects_worker.rb b/app/workers/remove_unreferenced_lfs_objects_worker.rb index b80f131d5f7cd445703cef508b6ed9545cac8995..8daf079fc3160179cf43a6fa06f8dd6bfc7e5bc9 100644 --- a/app/workers/remove_unreferenced_lfs_objects_worker.rb +++ b/app/workers/remove_unreferenced_lfs_objects_worker.rb @@ -1,5 +1,5 @@ class RemoveUnreferencedLfsObjectsWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/repository_archive_cache_worker.rb b/app/workers/repository_archive_cache_worker.rb index e47069df189069efb8ddf2f20c718242d30c9c62..86a258cf94f3f6fc05cb38c77ae48be38c124696 100644 --- a/app/workers/repository_archive_cache_worker.rb +++ b/app/workers/repository_archive_cache_worker.rb @@ -1,5 +1,5 @@ class RepositoryArchiveCacheWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/repository_check/batch_worker.rb b/app/workers/repository_check/batch_worker.rb index b94d83bd7098313d4fea32df3f39b661114e20c2..76688cf51c1b001e6c2373ef2c015b1b5ee4d953 100644 --- a/app/workers/repository_check/batch_worker.rb +++ b/app/workers/repository_check/batch_worker.rb @@ -1,6 +1,6 @@ module RepositoryCheck class BatchWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue RUN_TIME = 3600 diff --git a/app/workers/repository_check/clear_worker.rb b/app/workers/repository_check/clear_worker.rb index 85bc9103538dd3f3a61499d326aa8d85741ad5bc..97b89dc3db5413c9a055a0b009a77c85b9a4fe16 100644 --- a/app/workers/repository_check/clear_worker.rb +++ b/app/workers/repository_check/clear_worker.rb @@ -1,6 +1,6 @@ module RepositoryCheck class ClearWorker - include Sidekiq::Worker + include ApplicationWorker include RepositoryCheckQueue def perform diff --git a/app/workers/repository_check/single_repository_worker.rb b/app/workers/repository_check/single_repository_worker.rb index 164586cf0b742b8b0b9e491b414a05f565b384b6..bf0ae7751c723b691f5aefcc9d5f9bbc79f7072c 100644 --- a/app/workers/repository_check/single_repository_worker.rb +++ b/app/workers/repository_check/single_repository_worker.rb @@ -1,6 +1,6 @@ module RepositoryCheck class SingleRepositoryWorker - include Sidekiq::Worker + include ApplicationWorker include RepositoryCheckQueue def perform(project_id) diff --git a/app/workers/repository_fork_worker.rb b/app/workers/repository_fork_worker.rb index 001c11b73e1612b8a3e00e649eff2a25de6d086c..a07ef1705a156cf0567b6b942237b77c35733ad1 100644 --- a/app/workers/repository_fork_worker.rb +++ b/app/workers/repository_fork_worker.rb @@ -1,9 +1,8 @@ class RepositoryForkWorker ForkError = Class.new(StandardError) - include Sidekiq::Worker + include ApplicationWorker include Gitlab::ShellAdapter - include DedicatedSidekiqQueue include ProjectStartImport sidekiq_options status_expiration: StuckImportJobsWorker::IMPORT_JOBS_EXPIRATION diff --git a/app/workers/repository_import_worker.rb b/app/workers/repository_import_worker.rb index abe5c7ab391d233461a5594ee2292687d38da3ee..c0eb47b1e4dc3e3576a4d190aafe86670c21974a 100644 --- a/app/workers/repository_import_worker.rb +++ b/app/workers/repository_import_worker.rb @@ -1,8 +1,7 @@ class RepositoryImportWorker ImportError = Class.new(StandardError) - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker include ExceptionBacktrace include ProjectStartImport diff --git a/app/workers/requests_profiles_worker.rb b/app/workers/requests_profiles_worker.rb index 703b025d76e86fd3d59a7d10175ccd01c3a2b87f..55c236e9e9de37d76f3114e4fa3e1d0835b7ac1f 100644 --- a/app/workers/requests_profiles_worker.rb +++ b/app/workers/requests_profiles_worker.rb @@ -1,5 +1,5 @@ class RequestsProfilesWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/schedule_update_user_activity_worker.rb b/app/workers/schedule_update_user_activity_worker.rb index 6c2c3e437f31d536f85e906c50794fd0cfcd7ee5..d93765775970cc0bd7905c423e48cd8d98c089c7 100644 --- a/app/workers/schedule_update_user_activity_worker.rb +++ b/app/workers/schedule_update_user_activity_worker.rb @@ -1,5 +1,5 @@ class ScheduleUpdateUserActivityWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform(batch_size = 500) diff --git a/app/workers/stage_update_worker.rb b/app/workers/stage_update_worker.rb index c301cea5ad6d90a9c3f3abdede4caa3efd916826..69f2318d83bb7d2838a6b688bccfd400aa4765b5 100644 --- a/app/workers/stage_update_worker.rb +++ b/app/workers/stage_update_worker.rb @@ -1,5 +1,5 @@ class StageUpdateWorker - include Sidekiq::Worker + include ApplicationWorker include PipelineQueue enqueue_in group: :processing diff --git a/app/workers/storage_migrator_worker.rb b/app/workers/storage_migrator_worker.rb index b48ead799b91e78f2f3a604222bdc3042d6ab62a..f92421a667d9b97134f1a9403267d6b492c5cb1e 100644 --- a/app/workers/storage_migrator_worker.rb +++ b/app/workers/storage_migrator_worker.rb @@ -1,6 +1,5 @@ class StorageMigratorWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker BATCH_SIZE = 100 diff --git a/app/workers/stuck_ci_jobs_worker.rb b/app/workers/stuck_ci_jobs_worker.rb index 367e227f6800e8c43b875a60cf1e8bc0ef6fe085..fb26fa4c515ce34c44b650f9f76e3a3a2bd7bb17 100644 --- a/app/workers/stuck_ci_jobs_worker.rb +++ b/app/workers/stuck_ci_jobs_worker.rb @@ -1,5 +1,5 @@ class StuckCiJobsWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue EXCLUSIVE_LEASE_KEY = 'stuck_ci_builds_worker_lease'.freeze diff --git a/app/workers/stuck_import_jobs_worker.rb b/app/workers/stuck_import_jobs_worker.rb index 8461f7c0c71f403bac89797f63083d2da1a0fff8..28c2f6b8c82f69d93485488a63c92a7197446c99 100644 --- a/app/workers/stuck_import_jobs_worker.rb +++ b/app/workers/stuck_import_jobs_worker.rb @@ -1,5 +1,5 @@ class StuckImportJobsWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue IMPORT_JOBS_EXPIRATION = 15.hours.to_i diff --git a/app/workers/stuck_merge_jobs_worker.rb b/app/workers/stuck_merge_jobs_worker.rb index a396c0f27b209935780ac01f741201b522044d1f..36d2a2e6466bbc43201e68bee10f789e15b4356e 100644 --- a/app/workers/stuck_merge_jobs_worker.rb +++ b/app/workers/stuck_merge_jobs_worker.rb @@ -1,5 +1,5 @@ class StuckMergeJobsWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/system_hook_push_worker.rb b/app/workers/system_hook_push_worker.rb index e43bbe35de916dee79d9ae5e327894a409a3ce1b..ceeaaf8d18994a778679cba4a7f774a260fe2a0b 100644 --- a/app/workers/system_hook_push_worker.rb +++ b/app/workers/system_hook_push_worker.rb @@ -1,6 +1,5 @@ class SystemHookPushWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(push_data, hook_id) SystemHooksService.new.execute_hooks(push_data, hook_id) diff --git a/app/workers/trending_projects_worker.rb b/app/workers/trending_projects_worker.rb index 0531630d13a7b8de98387384201629e5a8840ea1..7eb65452a7dcfc604432213efb401ca61ec8cdc1 100644 --- a/app/workers/trending_projects_worker.rb +++ b/app/workers/trending_projects_worker.rb @@ -1,5 +1,5 @@ class TrendingProjectsWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/app/workers/update_merge_requests_worker.rb b/app/workers/update_merge_requests_worker.rb index afc47fc63d65d5cb371462619848f23c53c22d8b..74bb999327501bd02e15401df047e75b389b16c9 100644 --- a/app/workers/update_merge_requests_worker.rb +++ b/app/workers/update_merge_requests_worker.rb @@ -1,6 +1,5 @@ class UpdateMergeRequestsWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker LOG_TIME_THRESHOLD = 90 # seconds diff --git a/app/workers/update_user_activity_worker.rb b/app/workers/update_user_activity_worker.rb index 31bbdb69edb18112e756ecd0012f43082d6b2b40..27ec5cd33fb52ae24f98e1fa366316c21664a639 100644 --- a/app/workers/update_user_activity_worker.rb +++ b/app/workers/update_user_activity_worker.rb @@ -1,6 +1,5 @@ class UpdateUserActivityWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(pairs) pairs = cast_data(pairs) diff --git a/app/workers/upload_checksum_worker.rb b/app/workers/upload_checksum_worker.rb index 78931f1258fbeddc37a1f23dd470b8e8efa68437..9222760c0316a11aa47515e4448005ab45c35f16 100644 --- a/app/workers/upload_checksum_worker.rb +++ b/app/workers/upload_checksum_worker.rb @@ -1,6 +1,5 @@ class UploadChecksumWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(upload_id) upload = Upload.find(upload_id) diff --git a/app/workers/wait_for_cluster_creation_worker.rb b/app/workers/wait_for_cluster_creation_worker.rb index 241ed3901dc18478b3b068059e45b39b0e8b67f9..19cdb279aaaf929edae868f7febb2f9ad0a7741e 100644 --- a/app/workers/wait_for_cluster_creation_worker.rb +++ b/app/workers/wait_for_cluster_creation_worker.rb @@ -1,5 +1,5 @@ class WaitForClusterCreationWorker - include Sidekiq::Worker + include ApplicationWorker include ClusterQueue def perform(cluster_id) diff --git a/app/workers/web_hook_worker.rb b/app/workers/web_hook_worker.rb index 713c022804044c4ff0312dfb704f92500c579c21..dfc3f33ad9d4b439c069086ef0600e78306ab29a 100644 --- a/app/workers/web_hook_worker.rb +++ b/app/workers/web_hook_worker.rb @@ -1,6 +1,5 @@ class WebHookWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker sidekiq_options retry: 4, dead: false diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index ee2f44d2b9ce5ccbe2df34186cc8030f9da40ddb..9db9eeafbfda33155ce1a6a5d1178579d453cc60 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -76,12 +76,14 @@ # The Sidekiq client API always adds the queue to the Sidekiq queue # list, but mail_room and gitlab-shell do not. This is only necessary # for monitoring. -queues = Gitlab::SidekiqConfig.queues - begin + queues = Gitlab::SidekiqConfig.worker_queues + Sidekiq.redis do |conn| conn.pipelined do - queues.each { |queue| conn.sadd('queues', queue) } + queues.each do |queue| + conn.sadd('queues', queue) + end end end rescue Redis::BaseError, SocketError, Errno::ENOENT, Errno::EADDRNOTAVAIL, Errno::EAFNOSUPPORT, Errno::ECONNRESET, Errno::ECONNREFUSED diff --git a/doc/development/sidekiq_style_guide.md b/doc/development/sidekiq_style_guide.md index 1e9fdbc65e28c953f03f1cf53d805a3b5c9a6ade..a120f3e4771918a857024228e8ddd4616bcea1f2 100644 --- a/doc/development/sidekiq_style_guide.md +++ b/doc/development/sidekiq_style_guide.md @@ -18,8 +18,7 @@ include the `DedicatedSidekiqQueue` concern as follows: ```ruby class ProcessSomethingWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker end ``` diff --git a/ee/app/workers/admin_emails_worker.rb b/ee/app/workers/admin_emails_worker.rb index b1f3d62cfab954a2ddb8946df20daac9f13accdb..ae6c92f0261a8cd036101a043299df4cba654001 100644 --- a/ee/app/workers/admin_emails_worker.rb +++ b/ee/app/workers/admin_emails_worker.rb @@ -1,6 +1,5 @@ class AdminEmailsWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(recipient_id, subject, body) recipient_list(recipient_id).pluck(:id).uniq.each do |user_id| diff --git a/ee/app/workers/clear_shared_runners_minutes_worker.rb b/ee/app/workers/clear_shared_runners_minutes_worker.rb index 10465d5057933a90934954abc83e29edbd8020b4..11fc0c848567862aa84a84ff5d1153cf19e802a7 100644 --- a/ee/app/workers/clear_shared_runners_minutes_worker.rb +++ b/ee/app/workers/clear_shared_runners_minutes_worker.rb @@ -1,7 +1,7 @@ class ClearSharedRunnersMinutesWorker LEASE_TIMEOUT = 3600 - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/ee/app/workers/elastic_batch_project_indexer_worker.rb b/ee/app/workers/elastic_batch_project_indexer_worker.rb index daa3f35fe849a5f07084b9a12230c5f0479629e8..43d330cbff6739d12282d0bb4c573075de82bd25 100644 --- a/ee/app/workers/elastic_batch_project_indexer_worker.rb +++ b/ee/app/workers/elastic_batch_project_indexer_worker.rb @@ -1,10 +1,9 @@ class ElasticBatchProjectIndexerWorker - include Sidekiq::Worker + include ApplicationWorker include Gitlab::CurrentSettings # Batch indexing is a generally a onetime option, so give finer control over # queuing and concurrency - include DedicatedSidekiqQueue # This worker is long-running, but idempotent, so retry many times if # necessary diff --git a/ee/app/workers/elastic_commit_indexer_worker.rb b/ee/app/workers/elastic_commit_indexer_worker.rb index 39dc68cb5703bb1002363991e7ae206e631b839c..c580ed72ca971f6ba5fd6dac12dd86b9ede7ab83 100644 --- a/ee/app/workers/elastic_commit_indexer_worker.rb +++ b/ee/app/workers/elastic_commit_indexer_worker.rb @@ -1,6 +1,5 @@ class ElasticCommitIndexerWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker include Gitlab::CurrentSettings sidekiq_options retry: 2 diff --git a/ee/app/workers/elastic_indexer_worker.rb b/ee/app/workers/elastic_indexer_worker.rb index 52c1ea1d431a6a4e70d06266d800144e93e7c755..7eb9e4384bb508f6594ce7467f2382dfa72b9c40 100644 --- a/ee/app/workers/elastic_indexer_worker.rb +++ b/ee/app/workers/elastic_indexer_worker.rb @@ -1,6 +1,5 @@ class ElasticIndexerWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker include Elasticsearch::Model::Client::ClassMethods include Gitlab::CurrentSettings diff --git a/ee/app/workers/export_csv_worker.rb b/ee/app/workers/export_csv_worker.rb index 40ad758063c14f85acb2a0d4137d3a5e88b1ab11..565489c1e19ae93ba83f3bc9a69b8071e88cbedc 100644 --- a/ee/app/workers/export_csv_worker.rb +++ b/ee/app/workers/export_csv_worker.rb @@ -1,6 +1,5 @@ class ExportCsvWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(current_user_id, project_id, params) @current_user = User.find(current_user_id) diff --git a/ee/app/workers/historical_data_worker.rb b/ee/app/workers/historical_data_worker.rb index c94cb27fcf668016254d021ca4f3da864ae07b1e..05fb979a823f51a196cc31cfa1d9ba0a5d1f3695 100644 --- a/ee/app/workers/historical_data_worker.rb +++ b/ee/app/workers/historical_data_worker.rb @@ -1,5 +1,5 @@ class HistoricalDataWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/ee/app/workers/ldap_all_groups_sync_worker.rb b/ee/app/workers/ldap_all_groups_sync_worker.rb index aa1bd27540f26b1ab36b56edca96a949dbe53399..515fdb08ea72318c8dd5968c8e4ed940a82b888e 100644 --- a/ee/app/workers/ldap_all_groups_sync_worker.rb +++ b/ee/app/workers/ldap_all_groups_sync_worker.rb @@ -1,5 +1,5 @@ class LdapAllGroupsSyncWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/ee/app/workers/ldap_group_sync_worker.rb b/ee/app/workers/ldap_group_sync_worker.rb index 6c778051dcee9ffcd50c53916ae444ba1c08ead6..ca83dc4dad804794e7f2a12f1a080bd806d07f15 100644 --- a/ee/app/workers/ldap_group_sync_worker.rb +++ b/ee/app/workers/ldap_group_sync_worker.rb @@ -1,6 +1,5 @@ class LdapGroupSyncWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(group_ids, provider = nil) return unless Gitlab::LDAP::Config.group_sync_enabled? diff --git a/ee/app/workers/ldap_sync_worker.rb b/ee/app/workers/ldap_sync_worker.rb index 7b4f13b3a865b127ab9eb12fcc06efade29d2526..2b7653cbc60a4e7049fdd70aa5996f7d3c405e1d 100644 --- a/ee/app/workers/ldap_sync_worker.rb +++ b/ee/app/workers/ldap_sync_worker.rb @@ -1,5 +1,5 @@ class LdapSyncWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue def perform diff --git a/ee/app/workers/object_storage_upload_worker.rb b/ee/app/workers/object_storage_upload_worker.rb index 0a374c4323f1040487b2a10e4aca5b242a9bf620..f0e0dc6ade09162043b02cd4c6cb0cda909fba1a 100644 --- a/ee/app/workers/object_storage_upload_worker.rb +++ b/ee/app/workers/object_storage_upload_worker.rb @@ -1,6 +1,5 @@ class ObjectStorageUploadWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(uploader_class_name, subject_class_name, file_field, subject_id) uploader_class = uploader_class_name.constantize diff --git a/ee/app/workers/project_update_repository_storage_worker.rb b/ee/app/workers/project_update_repository_storage_worker.rb index a52025c3f21daedf162bbd6b744506c2ef1277a2..6e668230d3ba72abd19c2e2d7bb14dba0a207ce1 100644 --- a/ee/app/workers/project_update_repository_storage_worker.rb +++ b/ee/app/workers/project_update_repository_storage_worker.rb @@ -1,6 +1,5 @@ class ProjectUpdateRepositoryStorageWorker - include Sidekiq::Worker - include DedicatedSidekiqQueue + include ApplicationWorker def perform(project_id, new_repository_storage_key) project = Project.find(project_id) diff --git a/ee/app/workers/rebase_worker.rb b/ee/app/workers/rebase_worker.rb index b29226070194949f98ad3c81b2917e519df0b42b..83414d9729dca8ff8ed4f21041484fcc2b826d5a 100644 --- a/ee/app/workers/rebase_worker.rb +++ b/ee/app/workers/rebase_worker.rb @@ -1,5 +1,5 @@ class RebaseWorker - include Sidekiq::Worker + include ApplicationWorker sidekiq_options queue: :merge diff --git a/ee/app/workers/repository_update_mirror_worker.rb b/ee/app/workers/repository_update_mirror_worker.rb index a9cf43f1f97e3034a889b20973d28f296232afc9..f01d9faba7490f4041d6a03fc9bb09282b507180 100644 --- a/ee/app/workers/repository_update_mirror_worker.rb +++ b/ee/app/workers/repository_update_mirror_worker.rb @@ -1,9 +1,8 @@ class RepositoryUpdateMirrorWorker UpdateError = Class.new(StandardError) - include Sidekiq::Worker + include ApplicationWorker include Gitlab::ShellAdapter - include DedicatedSidekiqQueue include ProjectStartImport LEASE_KEY = 'repository_update_mirror_worker_start_scheduler'.freeze diff --git a/ee/app/workers/repository_update_remote_mirror_worker.rb b/ee/app/workers/repository_update_remote_mirror_worker.rb index 2fe7796a9d891ed5eddc7002c21e8fceecf7fce7..bb963979e88c47537587e7cd8da47fcbb7bbda3c 100644 --- a/ee/app/workers/repository_update_remote_mirror_worker.rb +++ b/ee/app/workers/repository_update_remote_mirror_worker.rb @@ -2,9 +2,8 @@ class RepositoryUpdateRemoteMirrorWorker UpdateAlreadyInProgressError = Class.new(StandardError) UpdateError = Class.new(StandardError) - include Sidekiq::Worker + include ApplicationWorker include Gitlab::ShellAdapter - include DedicatedSidekiqQueue sidekiq_options retry: 3, dead: false diff --git a/ee/app/workers/update_all_mirrors_worker.rb b/ee/app/workers/update_all_mirrors_worker.rb index d66e0751f3b819bba72ed08296d5603f743883c6..de39249df92ab29d2dd1d95d38a1e84766348191 100644 --- a/ee/app/workers/update_all_mirrors_worker.rb +++ b/ee/app/workers/update_all_mirrors_worker.rb @@ -1,5 +1,5 @@ class UpdateAllMirrorsWorker - include Sidekiq::Worker + include ApplicationWorker include CronjobQueue LEASE_TIMEOUT = 5.minutes diff --git a/lib/gitlab/sidekiq_cluster/cli.rb b/lib/gitlab/sidekiq_cluster/cli.rb index d2efeb22ed55efc7b1f20f77227524f10fda8f4a..3f8e3a746a9ef264558c39769af0902042d137fb 100644 --- a/lib/gitlab/sidekiq_cluster/cli.rb +++ b/lib/gitlab/sidekiq_cluster/cli.rb @@ -30,18 +30,16 @@ def run(argv = ARGV) option_parser.parse!(argv) - parsed_queues = SidekiqCluster.parse_queues(argv) + queue_groups = SidekiqCluster.parse_queues(argv) - queues = - if @negate_queues - parsed_queues.map { |queues| SidekiqConfig.queues(@rails_path, except: queues) } - else - parsed_queues - end + if @negate_queues + all_queues = SidekiqConfig.config_queues(@rails_path) + queue_groups.map! { |queues| all_queues - queues } + end - @logger.info("Starting cluster with #{queues.length} processes") + @logger.info("Starting cluster with #{queue_groups.length} processes") - @processes = SidekiqCluster.start(queues, @environment, @rails_path) + @processes = SidekiqCluster.start(queue_groups, @environment, @rails_path) write_pid trap_signals diff --git a/lib/gitlab/sidekiq_config.rb b/lib/gitlab/sidekiq_config.rb index cb51200232e03408ec6986df1168832863d78d78..02b71e12d28be761da0bcd18ee6fb338f3a444bb 100644 --- a/lib/gitlab/sidekiq_config.rb +++ b/lib/gitlab/sidekiq_config.rb @@ -2,13 +2,51 @@ module Gitlab module SidekiqConfig - def self.queues(rails_path = Rails.root.to_s, except: []) - queues_file_path = File.join(rails_path, 'config', 'sidekiq_queues.yml') + def self.redis_queues + @redis_queues ||= Sidekiq::Queue.all.map(&:name) + end + + # 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.config_queues(rails_path = Rails.root.to_s) + @config_queues ||= begin + config = YAML.load_file(File.join(rails_path, 'config', 'sidekiq_queues.yml')) + config[:queues].map(&:first) + end + end + + def self.cron_workers + @cron_workers ||= Settings.cron_jobs.map { |job_name, options| options['job_class'].constantize } + end + + def self.workers + @workers ||= + find_workers(Rails.root.join('app', 'workers')) + + find_workers(Rails.root.join('ee', 'app', 'workers')) + end + + def self.default_queues + [ActionMailer::DeliveryJob.queue_name, 'default'] + end + + def self.worker_queues + @worker_queues ||= (workers.map(&:queue) + default_queues).uniq + end + + def self.find_workers(root) + concerns = root.join('concerns').to_s + + workers = Dir[root.join('**', '*.rb')] + .reject { |path| path.start_with?(concerns) } + + workers.map! do |path| + ns = Pathname.new(path).relative_path_from(root).to_s.gsub('.rb', '') - @queues_file = {} - @queues_file[queues_file_path] ||= YAML.load_file(queues_file_path) + ns.camelize.constantize + end - @queues_file[queues_file_path].fetch(:queues).map { |queue, _| queue } - except + # Skip concerns + workers.select { |w| w < Sidekiq::Worker } end end end diff --git a/spec/lib/gitlab/sidekiq_cluster/cli_spec.rb b/spec/lib/gitlab/sidekiq_cluster/cli_spec.rb index 56740340ecc173660bf37db27033033b886c4c2d..6ee8448fd3380d146ab19872698c1461307724d5 100644 --- a/spec/lib/gitlab/sidekiq_cluster/cli_spec.rb +++ b/spec/lib/gitlab/sidekiq_cluster/cli_spec.rb @@ -22,7 +22,7 @@ context 'with --negate flag' do it 'starts Sidekiq workers for all queues on sidekiq_queues.yml except the ones on argv' do - expect(Gitlab::SidekiqConfig).to receive(:queues).and_return(['baz']) + expect(Gitlab::SidekiqConfig).to receive(:config_queues).and_return(['baz']) expect(Gitlab::SidekiqCluster).to receive(:start) .with([['baz']], 'test', Dir.pwd) .and_return([]) diff --git a/spec/lib/gitlab/sidekiq_config_spec.rb b/spec/lib/gitlab/sidekiq_config_spec.rb index 8fc5b1a2c6b852cd949e88f18ea4fed866cb6208..70a8644a276854b6e342f91ce00a0ebfaca98005 100644 --- a/spec/lib/gitlab/sidekiq_config_spec.rb +++ b/spec/lib/gitlab/sidekiq_config_spec.rb @@ -1,24 +1,38 @@ require 'rails_helper' describe Gitlab::SidekiqConfig do - describe '.queues' do - let(:queues_file_path) { Rails.root.join('config', 'sidekiq_queues.yml') } + describe '.workers' do + it 'includes all workers' do + workers = described_class.workers - context 'without except argument' do - it 'returns all queues defined on config/sidekiq_queues.yml file' do - expected_queues = YAML.load_file(queues_file_path)[:queues].map { |queue, _| queue } + expect(workers).to include(PostReceive) + expect(workers).to include(MergeWorker) + end + + it 'includes EE workers' do + workers = described_class.workers + + expect(workers).to include(RepositoryUpdateMirrorWorker) + expect(workers).to include(LdapGroupSyncWorker) + end + end + + describe '.worker_queues' do + it 'includes all queues' do + queues = described_class.worker_queues - expect(described_class.queues).to eq(expected_queues) - end + expect(queues).to include('post_receive') + expect(queues).to include('merge') + expect(queues).to include('cronjob') + expect(queues).to include('mailers') + expect(queues).to include('default') end - context 'with except argument' do - it 'returns queues on config/sidekiq_queues.yml filtering out excluded ones' do - expected_queues = - YAML.load_file(queues_file_path)[:queues].map { |queue, _| queue } - ['webhook'] + it 'includes EE queues' do + queues = described_class.worker_queues - expect(described_class.queues(except: ['webhook'])).to eq(expected_queues) - end + expect(queues).to include('repository_update_mirror') + expect(queues).to include('ldap_group_sync') end end end diff --git a/spec/workers/concerns/application_worker_spec.rb b/spec/workers/concerns/application_worker_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..fd434f5860239e7e9953f1aa06ae4a46932083ec --- /dev/null +++ b/spec/workers/concerns/application_worker_spec.rb @@ -0,0 +1,27 @@ +require 'spec_helper' + +describe ApplicationWorker do + let(:worker) do + Class.new do + def self.name + 'Gitlab::Foo::Bar::DummyWorker' + end + + include ApplicationWorker + end + end + + describe 'Sidekiq options' do + it 'sets the queue name based on the class name' do + expect(worker.sidekiq_options['queue']).to eq('foo_bar_dummy') + end + end + + describe '.queue' do + it 'returns the queue name' do + worker.sidekiq_options queue: :some_queue + + expect(worker.queue).to eq('some_queue') + end + end +end diff --git a/spec/workers/concerns/cluster_queue_spec.rb b/spec/workers/concerns/cluster_queue_spec.rb index 1050651fa51c39d6fd2c56329ae5f418b8084647..5049886b55c73cf15093dff0f3609b954312ddb5 100644 --- a/spec/workers/concerns/cluster_queue_spec.rb +++ b/spec/workers/concerns/cluster_queue_spec.rb @@ -3,7 +3,11 @@ describe ClusterQueue do let(:worker) do Class.new do - include Sidekiq::Worker + def self.name + 'DummyWorker' + end + + include ApplicationWorker include ClusterQueue end end diff --git a/spec/workers/concerns/cronjob_queue_spec.rb b/spec/workers/concerns/cronjob_queue_spec.rb index 5d1336c21a6b71c5def5d4ebab873cdddcfb05ae..3ae1c5f54d8eba0b8e83340a681b5b45bb2688ec 100644 --- a/spec/workers/concerns/cronjob_queue_spec.rb +++ b/spec/workers/concerns/cronjob_queue_spec.rb @@ -3,7 +3,11 @@ describe CronjobQueue do let(:worker) do Class.new do - include Sidekiq::Worker + def self.name + 'DummyWorker' + end + + include ApplicationWorker include CronjobQueue end end diff --git a/spec/workers/concerns/dedicated_sidekiq_queue_spec.rb b/spec/workers/concerns/dedicated_sidekiq_queue_spec.rb deleted file mode 100644 index 512baec8b7e1de795f544fb75603a3b138a7e1a7..0000000000000000000000000000000000000000 --- a/spec/workers/concerns/dedicated_sidekiq_queue_spec.rb +++ /dev/null @@ -1,20 +0,0 @@ -require 'spec_helper' - -describe DedicatedSidekiqQueue do - let(:worker) do - Class.new do - def self.name - 'Foo::Bar::DummyWorker' - end - - include Sidekiq::Worker - include DedicatedSidekiqQueue - end - end - - describe 'queue names' do - it 'sets the queue name based on the class name' do - expect(worker.sidekiq_options['queue']).to eq('foo_bar_dummy') - end - end -end diff --git a/spec/workers/concerns/geo_queue_spec.rb b/spec/workers/concerns/geo_queue_spec.rb index 58afe52d7d2a3757e81711955000a51d3310d464..3be916e28c983a61e222bb7ce286ad0886862564 100644 --- a/spec/workers/concerns/geo_queue_spec.rb +++ b/spec/workers/concerns/geo_queue_spec.rb @@ -3,7 +3,11 @@ describe GeoQueue do let(:worker) do Class.new do - include Sidekiq::Worker + def self.name + 'DummyWorker' + end + + include ApplicationWorker include GeoQueue end end diff --git a/spec/workers/concerns/gitlab/github_import/object_importer_spec.rb b/spec/workers/concerns/gitlab/github_import/object_importer_spec.rb index 3ccf06f2d7d11b8e26b5003025271955d5acb372..68cfe9d5545eed4540e72b90c6f57630fba2149a 100644 --- a/spec/workers/concerns/gitlab/github_import/object_importer_spec.rb +++ b/spec/workers/concerns/gitlab/github_import/object_importer_spec.rb @@ -3,6 +3,10 @@ describe Gitlab::GithubImport::ObjectImporter do let(:worker) do Class.new do + def self.name + 'DummyWorker' + end + include(Gitlab::GithubImport::ObjectImporter) def counter_name diff --git a/spec/workers/concerns/gitlab/github_import/queue_spec.rb b/spec/workers/concerns/gitlab/github_import/queue_spec.rb index 321ae3fe9787762d6e0c047b71c3c5d333dac2a7..9c69ee32da1d9fff8c3a7f6237d1203bb2895dcc 100644 --- a/spec/workers/concerns/gitlab/github_import/queue_spec.rb +++ b/spec/workers/concerns/gitlab/github_import/queue_spec.rb @@ -3,7 +3,11 @@ describe Gitlab::GithubImport::Queue do it 'sets the Sidekiq options for the worker' do worker = Class.new do - include Sidekiq::Worker + def self.name + 'DummyWorker' + end + + include ApplicationWorker include Gitlab::GithubImport::Queue end diff --git a/spec/workers/concerns/pipeline_queue_spec.rb b/spec/workers/concerns/pipeline_queue_spec.rb index eac5a770e5fc4d022aed59872cbcbae62df5737c..dd91176094813ea8fb5e286d83f97794d49b750c 100644 --- a/spec/workers/concerns/pipeline_queue_spec.rb +++ b/spec/workers/concerns/pipeline_queue_spec.rb @@ -3,7 +3,11 @@ describe PipelineQueue do let(:worker) do Class.new do - include Sidekiq::Worker + def self.name + 'DummyWorker' + end + + include ApplicationWorker include PipelineQueue end end diff --git a/spec/workers/concerns/repository_check_queue_spec.rb b/spec/workers/concerns/repository_check_queue_spec.rb index 8868e9698293a82ed2162cf06261db4cca1189c8..fdbbfcc90a59bbdfa366ec24c6ff182f573b3564 100644 --- a/spec/workers/concerns/repository_check_queue_spec.rb +++ b/spec/workers/concerns/repository_check_queue_spec.rb @@ -3,7 +3,11 @@ describe RepositoryCheckQueue do let(:worker) do Class.new do - include Sidekiq::Worker + def self.name + 'DummyWorker' + end + + include ApplicationWorker include RepositoryCheckQueue end end diff --git a/spec/workers/every_sidekiq_worker_spec.rb b/spec/workers/every_sidekiq_worker_spec.rb index 009bdd24383f42ef67da48566d1f9829a0cff10e..7ee0a51a263d5bb07b64881be433fe3065def340 100644 --- a/spec/workers/every_sidekiq_worker_spec.rb +++ b/spec/workers/every_sidekiq_worker_spec.rb @@ -1,45 +1,21 @@ require 'spec_helper' describe 'Every Sidekiq worker' do - let(:workers) do - root = Rails.root.join('app', 'workers') - concerns = root.join('concerns').to_s - ee_modules = root.join('ee').to_s - - workers = Dir[root.join('**', '*.rb')] - .reject { |path| path.start_with?(concerns, ee_modules) } - - workers.map do |path| - ns = Pathname.new(path).relative_path_from(root).to_s.gsub('.rb', '') - - ns.camelize.constantize - end + it 'includes ApplicationWorker' do + expect(Gitlab::SidekiqConfig.workers).to all(include(ApplicationWorker)) end it 'does not use the default queue' do - workers.each do |worker| - expect(worker.sidekiq_options['queue'].to_s).not_to eq('default') - end + expect(Gitlab::SidekiqConfig.workers.map(&:queue)).not_to include('default') end it 'uses the cronjob queue when the worker runs as a cronjob' do - cron_workers = Settings.cron_jobs - .map { |job_name, options| options['job_class'].constantize } - .to_set - - workers.each do |worker| - next unless cron_workers.include?(worker) - - expect(worker.sidekiq_options['queue'].to_s).to eq('cronjob') - end + expect(Gitlab::SidekiqConfig.cron_workers.map(&:queue)).to all(eq('cronjob')) end it 'defines the queue in the Sidekiq configuration file' do - config = YAML.load_file(Rails.root.join('config', 'sidekiq_queues.yml').to_s) - queue_names = config[:queues].map { |(queue, _)| queue }.to_set + config_queue_names = Gitlab::SidekiqConfig.config_queues.to_set - workers.each do |worker| - expect(queue_names).to include(worker.sidekiq_options['queue'].to_s) - end + expect(Gitlab::SidekiqConfig.worker_queues).to all(be_in(config_queue_names)) end end