Add ApplicationWorker and make every worker include it
This commit is contained in:
parent
4ca4b0ff70
commit
0b15570e49
|
|
@ -1,5 +1,5 @@
|
|||
class AdminEmailWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class BackgroundMigrationWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
# Enqueues a number of jobs in bulk.
|
||||
#
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class BuildCoverageWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
def perform(build_id)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class BuildFinishedWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
enqueue_in group: :processing
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class BuildHooksWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
enqueue_in group: :hooks
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class BuildQueueWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
enqueue_in group: :processing
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class BuildSuccessWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
enqueue_in group: :processing
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class BuildTraceSectionsWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
def perform(build_id)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class ClusterInstallAppWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include ClusterQueue
|
||||
include ClusterApplications
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class ClusterProvisionWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include ClusterQueue
|
||||
|
||||
def perform(cluster_id)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class ClusterWaitForAppInstallationWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include ClusterQueue
|
||||
include ClusterApplications
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -8,7 +8,7 @@ module Gitlab
|
|||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include GithubImport::Queue
|
||||
include ReschedulingMethods
|
||||
include NotifyUponDeath
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class CreatePipelineWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
enqueue_in group: :creation
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class DeleteMergedBranchesWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
def perform(project_id, user_id)
|
||||
begin
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class EmailReceiverWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
def perform(raw)
|
||||
return unless Gitlab::IncomingEmail.enabled?
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class EmailsOnPushWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
attr_reader :email, :skip_premailer
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class ExpireBuildArtifactsWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class ExpireBuildInstanceArtifactsWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
def perform(build_id)
|
||||
build = Ci::Build
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class ExpireJobCacheWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
enqueue_in group: :cache
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class ExpirePipelineCacheWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
enqueue_in group: :cache
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class GitGarbageCollectWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
include Gitlab::CurrentSettings
|
||||
|
||||
sidekiq_options retry: false
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ module Gitlab
|
|||
# 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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ module Gitlab
|
|||
module GithubImport
|
||||
module Stage
|
||||
class FinishImportWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include GithubImport::Queue
|
||||
include StageMethods
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ module Gitlab
|
|||
module GithubImport
|
||||
module Stage
|
||||
class ImportBaseDataWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include GithubImport::Queue
|
||||
include StageMethods
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ module Gitlab
|
|||
module GithubImport
|
||||
module Stage
|
||||
class ImportIssuesAndDiffNotesWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include GithubImport::Queue
|
||||
include StageMethods
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ module Gitlab
|
|||
module GithubImport
|
||||
module Stage
|
||||
class ImportNotesWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include GithubImport::Queue
|
||||
include StageMethods
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ module Gitlab
|
|||
module GithubImport
|
||||
module Stage
|
||||
class ImportPullRequestsWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include GithubImport::Queue
|
||||
include StageMethods
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ module Gitlab
|
|||
module GithubImport
|
||||
module Stage
|
||||
class ImportRepositoryWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include GithubImport::Queue
|
||||
include StageMethods
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
class GitlabUsagePingWorker
|
||||
LEASE_TIMEOUT = 86400
|
||||
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class GroupDestroyWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
include ExceptionBacktrace
|
||||
|
||||
def perform(group_id, user_id)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class ImportExportProjectCleanupWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ require 'json'
|
|||
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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class NewIssueWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
include NewIssuable
|
||||
|
||||
def perform(issue_id, user_id)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class NewMergeRequestWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
include NewIssuable
|
||||
|
||||
def perform(merge_request_id, user_id)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class PagesWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
|
||||
sidekiq_options queue: :pages, retry: false
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class PipelineHooksWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
enqueue_in group: :hooks
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class PipelineMetricsWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
def perform(pipeline_id)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class PipelineNotificationWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
def perform(pipeline_id, recipients = nil)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class PipelineProcessWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
enqueue_in group: :processing
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class PipelineScheduleWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class PipelineSuccessWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
enqueue_in group: :processing
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class PipelineUpdateWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
enqueue_in group: :processing
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class PostReceive
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
def perform(gl_repository, identifier, changes)
|
||||
project, is_wiki = Gitlab::GlRepository.parse(gl_repository)
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
# Worker for updating any project specific caches.
|
||||
class ProjectCacheWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
LEASE_TIMEOUT = 15.minutes.to_i
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class ProjectDestroyWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
include ExceptionBacktrace
|
||||
|
||||
def perform(project_id, user_id, params)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class ProjectExportWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
include ExceptionBacktrace
|
||||
|
||||
sidekiq_options retry: 3
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class ProjectMigrateHashedStorageWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
LEASE_TIMEOUT = 30.seconds.to_i
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class ProjectServiceWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
sidekiq_options dead: false
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class PruneOldEventsWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class ReactiveCachingWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
def perform(class_name, id, *args)
|
||||
klass = begin
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class RemoveExpiredGroupLinksWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class RemoveExpiredMembersWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class RemoveOldWebHookLogsWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
WEB_HOOK_LOG_LIFETIME = 2.days
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class RemoveUnreferencedLfsObjectsWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class RepositoryArchiveCacheWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
module RepositoryCheck
|
||||
class BatchWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
RUN_TIME = 3600
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
module RepositoryCheck
|
||||
class ClearWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include RepositoryCheckQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
module RepositoryCheck
|
||||
class SingleRepositoryWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include RepositoryCheckQueue
|
||||
|
||||
def perform(project_id)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
class RepositoryImportWorker
|
||||
ImportError = Class.new(StandardError)
|
||||
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
include ExceptionBacktrace
|
||||
include ProjectStartImport
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class RequestsProfilesWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class ScheduleUpdateUserActivityWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform(batch_size = 500)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class StageUpdateWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
|
||||
enqueue_in group: :processing
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class StorageMigratorWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
BATCH_SIZE = 100
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class StuckCiJobsWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
EXCLUSIVE_LEASE_KEY = 'stuck_ci_builds_worker_lease'.freeze
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class StuckImportJobsWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
IMPORT_JOBS_EXPIRATION = 15.hours.to_i
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class StuckMergeJobsWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class TrendingProjectsWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
|
||||
def perform
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class UpdateMergeRequestsWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
LOG_TIME_THRESHOLD = 90 # seconds
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class UpdateUserActivityWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
def perform(pairs)
|
||||
pairs = cast_data(pairs)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class UploadChecksumWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
def perform(upload_id)
|
||||
upload = Upload.find(upload_id)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class WaitForClusterCreationWorker
|
||||
include Sidekiq::Worker
|
||||
include ApplicationWorker
|
||||
include ClusterQueue
|
||||
|
||||
def perform(cluster_id)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
class WebHookWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
|
||||
sidekiq_options retry: 4, dead: false
|
||||
|
||||
|
|
|
|||
|
|
@ -64,13 +64,13 @@ end
|
|||
# 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.
|
||||
config = YAML.load_file(Rails.root.join('config', 'sidekiq_queues.yml').to_s)
|
||||
|
||||
begin
|
||||
queues = Gitlab::SidekiqConfig.worker_queues
|
||||
|
||||
Sidekiq.redis do |conn|
|
||||
conn.pipelined do
|
||||
config[:queues].each do |queue|
|
||||
conn.sadd('queues', queue[0])
|
||||
queues.each do |queue|
|
||||
conn.sadd('queues', queue)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -18,8 +18,7 @@ include the `DedicatedSidekiqQueue` concern as follows:
|
|||
|
||||
```ruby
|
||||
class ProcessSomethingWorker
|
||||
include Sidekiq::Worker
|
||||
include DedicatedSidekiqQueue
|
||||
include ApplicationWorker
|
||||
end
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,50 @@
|
|||
require 'yaml'
|
||||
|
||||
module Gitlab
|
||||
module SidekiqConfig
|
||||
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'))
|
||||
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', '')
|
||||
|
||||
ns.camelize.constantize
|
||||
end
|
||||
|
||||
# Skip concerns
|
||||
workers.select { |w| w < Sidekiq::Worker }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
require 'rails_helper'
|
||||
|
||||
describe Gitlab::SidekiqConfig do
|
||||
describe '.workers' do
|
||||
it 'includes all workers' do
|
||||
workers = described_class.workers
|
||||
|
||||
expect(workers).to include(PostReceive)
|
||||
expect(workers).to include(MergeWorker)
|
||||
end
|
||||
end
|
||||
|
||||
describe '.worker_queues' do
|
||||
it 'includes all queues' do
|
||||
queues = described_class.worker_queues
|
||||
|
||||
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
|
||||
end
|
||||
end
|
||||
|
|
@ -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
|
||||
|
|
@ -3,7 +3,11 @@ require 'spec_helper'
|
|||
describe ClusterQueue do
|
||||
let(:worker) do
|
||||
Class.new do
|
||||
include Sidekiq::Worker
|
||||
def self.name
|
||||
'DummyWorker'
|
||||
end
|
||||
|
||||
include ApplicationWorker
|
||||
include ClusterQueue
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@ require 'spec_helper'
|
|||
describe CronjobQueue do
|
||||
let(:worker) do
|
||||
Class.new do
|
||||
include Sidekiq::Worker
|
||||
def self.name
|
||||
'DummyWorker'
|
||||
end
|
||||
|
||||
include ApplicationWorker
|
||||
include CronjobQueue
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -3,6 +3,10 @@ require 'spec_helper'
|
|||
describe Gitlab::GithubImport::ObjectImporter do
|
||||
let(:worker) do
|
||||
Class.new do
|
||||
def self.name
|
||||
'DummyWorker'
|
||||
end
|
||||
|
||||
include(Gitlab::GithubImport::ObjectImporter)
|
||||
|
||||
def counter_name
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@ require 'spec_helper'
|
|||
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
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@ require 'spec_helper'
|
|||
describe PipelineQueue do
|
||||
let(:worker) do
|
||||
Class.new do
|
||||
include Sidekiq::Worker
|
||||
def self.name
|
||||
'DummyWorker'
|
||||
end
|
||||
|
||||
include ApplicationWorker
|
||||
include PipelineQueue
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@ require 'spec_helper'
|
|||
describe RepositoryCheckQueue do
|
||||
let(:worker) do
|
||||
Class.new do
|
||||
include Sidekiq::Worker
|
||||
def self.name
|
||||
'DummyWorker'
|
||||
end
|
||||
|
||||
include ApplicationWorker
|
||||
include RepositoryCheckQueue
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,44 +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
|
||||
|
||||
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', '')
|
||||
|
||||
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
|
||||
|
|
|
|||
Loading…
Reference in New Issue