From c5bd57e87b96418b9dec2ab7ebff498628ee4cad Mon Sep 17 00:00:00 2001 From: Douwe Maan <douwe@selenight.nl> Date: Tue, 28 Nov 2017 17:08:30 +0100 Subject: [PATCH] Add ApplicationWorker and make every worker include it --- app/workers/admin_email_worker.rb | 2 +- app/workers/authorized_projects_worker.rb | 3 +- app/workers/background_migration_worker.rb | 3 +- app/workers/build_coverage_worker.rb | 2 +- app/workers/build_finished_worker.rb | 2 +- app/workers/build_hooks_worker.rb | 2 +- app/workers/build_queue_worker.rb | 2 +- app/workers/build_success_worker.rb | 2 +- app/workers/build_trace_sections_worker.rb | 2 +- app/workers/cluster_install_app_worker.rb | 2 +- app/workers/cluster_provision_worker.rb | 2 +- ...luster_wait_for_app_installation_worker.rb | 2 +- app/workers/concerns/application_worker.rb | 25 ++++++++++ .../concerns/dedicated_sidekiq_queue.rb | 9 ---- .../gitlab/github_import/object_importer.rb | 2 +- app/workers/create_gpg_signature_worker.rb | 3 +- app/workers/create_pipeline_worker.rb | 2 +- app/workers/delete_merged_branches_worker.rb | 3 +- app/workers/delete_user_worker.rb | 3 +- app/workers/email_receiver_worker.rb | 3 +- app/workers/emails_on_push_worker.rb | 3 +- app/workers/expire_build_artifacts_worker.rb | 2 +- .../expire_build_instance_artifacts_worker.rb | 3 +- app/workers/expire_job_cache_worker.rb | 2 +- app/workers/expire_pipeline_cache_worker.rb | 2 +- app/workers/geo/base_scheduler_worker.rb | 2 +- app/workers/geo/file_download_worker.rb | 5 +- app/workers/geo/file_removal_worker.rb | 5 +- ...ed_storage_attachments_migration_worker.rb | 2 +- .../geo/hashed_storage_migration_worker.rb | 2 +- app/workers/geo/metrics_update_worker.rb | 2 +- app/workers/geo/project_sync_worker.rb | 4 +- app/workers/geo/prune_event_log_worker.rb | 2 +- app/workers/geo/rename_repository_worker.rb | 2 +- .../geo/repositories_clean_up_worker.rb | 2 +- app/workers/geo_repository_destroy_worker.rb | 2 +- app/workers/git_garbage_collect_worker.rb | 3 +- .../github_import/advance_stage_worker.rb | 2 +- .../refresh_import_jid_worker.rb | 2 +- .../stage/finish_import_worker.rb | 2 +- .../stage/import_base_data_worker.rb | 2 +- .../import_issues_and_diff_notes_worker.rb | 2 +- .../stage/import_notes_worker.rb | 2 +- .../stage/import_pull_requests_worker.rb | 2 +- .../stage/import_repository_worker.rb | 2 +- app/workers/gitlab_shell_worker.rb | 3 +- app/workers/gitlab_usage_ping_worker.rb | 2 +- app/workers/group_destroy_worker.rb | 3 +- .../import_export_project_cleanup_worker.rb | 2 +- .../invalid_gpg_signature_update_worker.rb | 3 +- app/workers/irker_worker.rb | 3 +- app/workers/merge_worker.rb | 3 +- .../namespaceless_project_destroy_worker.rb | 3 +- app/workers/new_issue_worker.rb | 3 +- app/workers/new_merge_request_worker.rb | 3 +- app/workers/new_note_worker.rb | 3 +- app/workers/pages_worker.rb | 2 +- app/workers/pipeline_hooks_worker.rb | 2 +- app/workers/pipeline_metrics_worker.rb | 2 +- app/workers/pipeline_notification_worker.rb | 2 +- app/workers/pipeline_process_worker.rb | 2 +- app/workers/pipeline_schedule_worker.rb | 2 +- app/workers/pipeline_success_worker.rb | 2 +- app/workers/pipeline_update_worker.rb | 2 +- app/workers/post_receive.rb | 3 +- app/workers/process_commit_worker.rb | 3 +- app/workers/project_cache_worker.rb | 3 +- app/workers/project_destroy_worker.rb | 3 +- app/workers/project_export_worker.rb | 3 +- .../project_migrate_hashed_storage_worker.rb | 3 +- app/workers/project_service_worker.rb | 3 +- .../propagate_service_template_worker.rb | 3 +- app/workers/prune_old_events_worker.rb | 2 +- app/workers/reactive_caching_worker.rb | 3 +- .../remove_expired_group_links_worker.rb | 2 +- app/workers/remove_expired_members_worker.rb | 2 +- .../remove_old_web_hook_logs_worker.rb | 2 +- .../remove_unreferenced_lfs_objects_worker.rb | 2 +- .../repository_archive_cache_worker.rb | 2 +- app/workers/repository_check/batch_worker.rb | 2 +- app/workers/repository_check/clear_worker.rb | 2 +- .../single_repository_worker.rb | 2 +- app/workers/repository_fork_worker.rb | 3 +- app/workers/repository_import_worker.rb | 3 +- app/workers/requests_profiles_worker.rb | 2 +- .../schedule_update_user_activity_worker.rb | 2 +- app/workers/stage_update_worker.rb | 2 +- app/workers/storage_migrator_worker.rb | 3 +- app/workers/stuck_ci_jobs_worker.rb | 2 +- app/workers/stuck_import_jobs_worker.rb | 2 +- app/workers/stuck_merge_jobs_worker.rb | 2 +- app/workers/system_hook_push_worker.rb | 3 +- app/workers/trending_projects_worker.rb | 2 +- app/workers/update_merge_requests_worker.rb | 3 +- app/workers/update_user_activity_worker.rb | 3 +- app/workers/upload_checksum_worker.rb | 3 +- .../wait_for_cluster_creation_worker.rb | 2 +- app/workers/web_hook_worker.rb | 3 +- config/initializers/sidekiq.rb | 8 ++-- doc/development/sidekiq_style_guide.md | 3 +- ee/app/workers/admin_emails_worker.rb | 3 +- .../clear_shared_runners_minutes_worker.rb | 2 +- .../elastic_batch_project_indexer_worker.rb | 3 +- .../workers/elastic_commit_indexer_worker.rb | 3 +- ee/app/workers/elastic_indexer_worker.rb | 3 +- ee/app/workers/export_csv_worker.rb | 3 +- ee/app/workers/historical_data_worker.rb | 2 +- ee/app/workers/ldap_all_groups_sync_worker.rb | 2 +- ee/app/workers/ldap_group_sync_worker.rb | 3 +- ee/app/workers/ldap_sync_worker.rb | 2 +- .../workers/object_storage_upload_worker.rb | 3 +- ...roject_update_repository_storage_worker.rb | 3 +- ee/app/workers/rebase_worker.rb | 2 +- .../repository_update_mirror_worker.rb | 3 +- .../repository_update_remote_mirror_worker.rb | 3 +- ee/app/workers/update_all_mirrors_worker.rb | 2 +- lib/gitlab/sidekiq_cluster/cli.rb | 16 +++---- lib/gitlab/sidekiq_config.rb | 48 +++++++++++++++++-- spec/lib/gitlab/sidekiq_cluster/cli_spec.rb | 2 +- spec/lib/gitlab/sidekiq_config_spec.rb | 40 +++++++++++----- .../concerns/application_worker_spec.rb | 27 +++++++++++ spec/workers/concerns/cluster_queue_spec.rb | 6 ++- spec/workers/concerns/cronjob_queue_spec.rb | 6 ++- .../concerns/dedicated_sidekiq_queue_spec.rb | 20 -------- spec/workers/concerns/geo_queue_spec.rb | 6 ++- .../github_import/object_importer_spec.rb | 4 ++ .../gitlab/github_import/queue_spec.rb | 6 ++- spec/workers/concerns/pipeline_queue_spec.rb | 6 ++- .../concerns/repository_check_queue_spec.rb | 6 ++- spec/workers/every_sidekiq_worker_spec.rb | 36 +++----------- 130 files changed, 292 insertions(+), 259 deletions(-) create mode 100644 app/workers/concerns/application_worker.rb delete mode 100644 app/workers/concerns/dedicated_sidekiq_queue.rb create mode 100644 spec/workers/concerns/application_worker_spec.rb delete mode 100644 spec/workers/concerns/dedicated_sidekiq_queue_spec.rb diff --git a/app/workers/admin_email_worker.rb b/app/workers/admin_email_worker.rb index c2dc955b27c1e..bec0a003a1c31 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 55d8d0c69d161..d4f334ec3b893 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 45ce49bb5c0b9..65791c4eaba54 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 cd4af85d04717..62b212c79be56 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 c77fe074c7319..0fc7a1635c88b 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 dedaf2835e610..6705a1c2709a0 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 e5ceb9ef71518..fc775a84dc09d 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 20ec24bd18ab0..ec049821ad7ae 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 8c57e8f767b02..c0f5c144e10f6 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 899aed904e4c5..f771cb4939f9f 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 b01f970842467..1ab4de3b6479b 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 4bb8c293e5d61..d564d5e48bf7a 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 0000000000000..bf1ecaa0c6d22 --- /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 132bae6022b4c..0000000000000 --- 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 67e36c811de9c..9a9fbaad653c7 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 9b5ff17aafa30..f371731f68c95 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 865ad1ba420a9..00cd7b85b9f48 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 f870da4ecfdd4..07cd1f02fb59b 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 3340a7be4fe26..6c431b02979df 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 1afa24c8e2afb..fff7cf9d26ce2 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 f5ccc84c160c8..21da27973fece 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 a27585fd3897a..73ab421108011 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 7b59e97649224..234b4357cf7fe 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 98a7500bffe33..a591e2da51958 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 93b67497ba684..211a05f120ca3 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 3f16e529691e1..f21d71dc4dc96 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 2a6a61a21da34..a4c77eb2e25de 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 978a4abc91c55..96dd438fc8b0b 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 0afc1ef4a34ce..a082a6d71177e 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 438c76d195c1e..54f402c4d203e 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 5753dd1335b1e..8574297547d6b 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 85c667b19a529..da4be4bc962cb 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 eed396c0bce14..f3548d88f0bf2 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 44f83b805889e..4cea329d0a70d 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 fc928a1f18a0e..4448f4aa68bdc 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 b0a9c710f283c..b8efca3ebc6f7 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 ec65d3ff65ea3..8e26275669e36 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 877f88c043f42..400396d5755e9 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 45a3892722533..7108b531bc225 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 1a09497780aa6..073d660808214 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 f8a3684c6ba57..5726fbb573d84 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 e110b7c1c36f7..7007754ff2e6f 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 9810ed25cf90a..5f4678a595f06 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 c531f26e89730..1c5a7139802cc 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 aa5762e773d80..4d16cef1130a6 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 0ec871e00e169..a0028e41332a8 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 0a55aab63fd8a..6dd281b1147d5 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 bd8e212e928da..f577b310b2061 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 7957ed807ab07..9788c8df3a3fa 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 db6b1ea8e8de8..6774ab307c602 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 311fc187e49ce..9ae5456be4cc3 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 48e2da338f637..ba832fe30c6b2 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 f1cd176942115..13d750e587642 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 d9a8e892e906e..3bc030f9c620f 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 1910c49015958..bda2a0ab59da6 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 926162b8c53a9..67c54fbf10e05 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 64788da72999b..62f733c02fc43 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 30a75ec8435df..661c29efe8868 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 070943f1ecc95..d46d1f122fcfa 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 cdb860b667580..a9a1168a6e3a0 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 8c067d0508120..07dbf6a971eb5 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 7320db1065eb2..c49758878a4cc 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 cb8bb2ffe757d..68c40a259e174 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 5fa399dff4c89..24a8a9fbed531 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 627a78d1e7887..adbc1373a4b06 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 c0c03848a403b..52eebe475ecb3 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 19736076938f1..ca7dd48032234 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 3be7e686609a9..1ba854ca4cb6c 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 f13ac9e5db289..c100852374a1e 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 127aa6b9d7def..d01eb744e5d5b 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 4883d848c53b6..75c4b8b36632e 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 6b607451c7ab8..635a97c99afc8 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 2b43bb19ad1a3..5ff62ab1369e7 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 18b8daf4e1e75..ef3ddb9024bac 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 2a619f834100c..7e64c3070a89c 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 31f652e5f9bc1..d80b3b15840a1 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 555e1bb86919d..87fed42d7ce20 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 b80f131d5f7cd..8daf079fc3160 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 e47069df18906..86a258cf94f3f 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 b94d83bd70983..76688cf51c1b0 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 85bc9103538dd..97b89dc3db541 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 164586cf0b742..bf0ae7751c723 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 001c11b73e161..a07ef1705a156 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 abe5c7ab391d2..c0eb47b1e4dc3 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 703b025d76e86..55c236e9e9de3 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 6c2c3e437f31d..d93765775970c 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 c301cea5ad6d9..69f2318d83bb7 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 b48ead799b91e..f92421a667d9b 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 367e227f6800e..fb26fa4c515ce 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 8461f7c0c71f4..28c2f6b8c82f6 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 a396c0f27b209..36d2a2e6466bb 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 e43bbe35de916..ceeaaf8d18994 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 0531630d13a7b..7eb65452a7dcf 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 afc47fc63d65d..74bb999327501 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 31bbdb69edb18..27ec5cd33fb52 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 78931f1258fbe..9222760c0316a 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 241ed3901dc18..19cdb279aaaf9 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 713c022804044..dfc3f33ad9d4b 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 ee2f44d2b9ce5..9db9eeafbfda3 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 1e9fdbc65e28c..a120f3e477191 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 b1f3d62cfab95..ae6c92f0261a8 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 10465d5057933..11fc0c8485678 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 daa3f35fe849a..43d330cbff673 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 39dc68cb5703b..c580ed72ca971 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 52c1ea1d431a6..7eb9e4384bb50 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 40ad758063c14..565489c1e19ae 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 c94cb27fcf668..05fb979a823f5 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 aa1bd27540f26..515fdb08ea723 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 6c778051dcee9..ca83dc4dad804 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 7b4f13b3a865b..2b7653cbc60a4 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 0a374c4323f10..f0e0dc6ade091 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 a52025c3f21da..6e668230d3ba7 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 b292260701949..83414d9729dca 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 a9cf43f1f97e3..f01d9faba7490 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 2fe7796a9d891..bb963979e88c4 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 d66e0751f3b81..de39249df92ab 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 d2efeb22ed55e..3f8e3a746a9ef 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 cb51200232e03..02b71e12d28be 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 56740340ecc17..6ee8448fd3380 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 8fc5b1a2c6b85..70a8644a27685 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 0000000000000..fd434f5860239 --- /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 1050651fa51c3..5049886b55c73 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 5d1336c21a6b7..3ae1c5f54d8eb 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 512baec8b7e1d..0000000000000 --- 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 58afe52d7d2a3..3be916e28c983 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 3ccf06f2d7d11..68cfe9d5545ee 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 321ae3fe97877..9c69ee32da1d9 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 eac5a770e5fc4..dd91176094813 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 8868e9698293a..fdbbfcc90a59b 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 009bdd24383f4..7ee0a51a263d5 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 -- GitLab