diff options
Diffstat (limited to 'app/workers')
-rw-r--r-- | app/workers/all_queues.yml | 2 | ||||
-rw-r--r-- | app/workers/pages_domain_removal_cron_worker.rb | 6 | ||||
-rw-r--r-- | app/workers/pages_domain_ssl_renewal_cron_worker.rb | 8 | ||||
-rw-r--r-- | app/workers/pages_domain_verification_cron_worker.rb | 8 | ||||
-rw-r--r-- | app/workers/propagate_instance_level_service_worker.rb | 26 | ||||
-rw-r--r-- | app/workers/propagate_service_template_worker.rb | 26 |
6 files changed, 40 insertions, 36 deletions
diff --git a/app/workers/all_queues.yml b/app/workers/all_queues.yml index 22dd7f5843f..42ee0994617 100644 --- a/app/workers/all_queues.yml +++ b/app/workers/all_queues.yml @@ -969,7 +969,7 @@ :latency_sensitive: :resource_boundary: :unknown :weight: 1 -- :name: propagate_instance_level_service +- :name: propagate_service_template :feature_category: :source_code_management :has_external_dependencies: :latency_sensitive: diff --git a/app/workers/pages_domain_removal_cron_worker.rb b/app/workers/pages_domain_removal_cron_worker.rb index b14d0d4597c..1c96dd6ad8c 100644 --- a/app/workers/pages_domain_removal_cron_worker.rb +++ b/app/workers/pages_domain_removal_cron_worker.rb @@ -2,14 +2,14 @@ class PagesDomainRemovalCronWorker include ApplicationWorker - include CronjobQueue # rubocop:disable Scalability/CronWorkerContext + include CronjobQueue feature_category :pages worker_resource_boundary :cpu def perform - PagesDomain.for_removal.find_each do |domain| - domain.destroy! + PagesDomain.for_removal.with_logging_info.find_each do |domain| + with_context(project: domain.project) { domain.destroy! } rescue => e Gitlab::ErrorTracking.track_exception(e) end diff --git a/app/workers/pages_domain_ssl_renewal_cron_worker.rb b/app/workers/pages_domain_ssl_renewal_cron_worker.rb index b20ed23dc89..c1201b935d1 100644 --- a/app/workers/pages_domain_ssl_renewal_cron_worker.rb +++ b/app/workers/pages_domain_ssl_renewal_cron_worker.rb @@ -2,15 +2,17 @@ class PagesDomainSslRenewalCronWorker include ApplicationWorker - include CronjobQueue # rubocop:disable Scalability/CronWorkerContext + include CronjobQueue feature_category :pages def perform return unless ::Gitlab::LetsEncrypt.enabled? - PagesDomain.need_auto_ssl_renewal.find_each do |domain| - PagesDomainSslRenewalWorker.perform_async(domain.id) + PagesDomain.need_auto_ssl_renewal.with_logging_info.find_each do |domain| + with_context(project: domain.project) do + PagesDomainSslRenewalWorker.perform_async(domain.id) + end end end end diff --git a/app/workers/pages_domain_verification_cron_worker.rb b/app/workers/pages_domain_verification_cron_worker.rb index 8bd7fe33334..b06aa65a8e5 100644 --- a/app/workers/pages_domain_verification_cron_worker.rb +++ b/app/workers/pages_domain_verification_cron_worker.rb @@ -2,15 +2,17 @@ class PagesDomainVerificationCronWorker include ApplicationWorker - include CronjobQueue # rubocop:disable Scalability/CronWorkerContext + include CronjobQueue feature_category :pages def perform return if Gitlab::Database.read_only? - PagesDomain.needs_verification.find_each do |domain| - PagesDomainVerificationWorker.perform_async(domain.id) + PagesDomain.needs_verification.with_logging_info.find_each do |domain| + with_context(project: domain.project) do + PagesDomainVerificationWorker.perform_async(domain.id) + end end end end diff --git a/app/workers/propagate_instance_level_service_worker.rb b/app/workers/propagate_instance_level_service_worker.rb deleted file mode 100644 index 64ea61cabfa..00000000000 --- a/app/workers/propagate_instance_level_service_worker.rb +++ /dev/null @@ -1,26 +0,0 @@ -# frozen_string_literal: true - -# Worker for updating any project specific caches. -class PropagateInstanceLevelServiceWorker - include ApplicationWorker - - feature_category :source_code_management - - LEASE_TIMEOUT = 4.hours.to_i - - # rubocop: disable CodeReuse/ActiveRecord - def perform(instance_level_service_id) - return unless try_obtain_lease_for(instance_level_service_id) - - Projects::PropagateInstanceLevelService.propagate(Service.find_by(id: instance_level_service_id)) - end - # rubocop: enable CodeReuse/ActiveRecord - - private - - def try_obtain_lease_for(instance_level_service_id) - Gitlab::ExclusiveLease - .new("propagate_instance_level_service_worker:#{instance_level_service_id}", timeout: LEASE_TIMEOUT) - .try_obtain - end -end diff --git a/app/workers/propagate_service_template_worker.rb b/app/workers/propagate_service_template_worker.rb new file mode 100644 index 00000000000..73a2b453207 --- /dev/null +++ b/app/workers/propagate_service_template_worker.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +# Worker for updating any project specific caches. +class PropagateServiceTemplateWorker + include ApplicationWorker + + feature_category :source_code_management + + LEASE_TIMEOUT = 4.hours.to_i + + # rubocop: disable CodeReuse/ActiveRecord + def perform(template_id) + return unless try_obtain_lease_for(template_id) + + Projects::PropagateServiceTemplate.propagate(Service.find_by(id: template_id)) + end + # rubocop: enable CodeReuse/ActiveRecord + + private + + def try_obtain_lease_for(template_id) + Gitlab::ExclusiveLease + .new("propagate_service_template_worker:#{template_id}", timeout: LEASE_TIMEOUT) + .try_obtain + end +end |