Commit ee37dd26 authored by John Skarbek's avatar John Skarbek Committed by Sean McGivern

Mark sidekiq queues that require local shared disk access

* Queues marked with this require some form of access for data
that is shared among various components.  An example might be that the
queue writes data to a local directory that is quickly displayed to the
user.
* In scenarios where large installations exist, this requires some form
of shared stored, commonly NFS, to be configured where sidekiq can write
the data, but then a set of web front ends have the same NFS share such
that they are capable of reading that data and vice versa.
* This commit marks all queues _known_ to have such a dependency
* As this dependency is removed, this tag should be removed
parent 1372ea0a
......@@ -946,7 +946,8 @@
:resource_boundary: :unknown
:weight: 1
:idempotent:
:tags: []
:tags:
- :requires_disk_io
- :name: pipeline_background:ci_build_report_result
:feature_category: :continuous_integration
:has_external_dependencies:
......@@ -954,7 +955,8 @@
:resource_boundary: :unknown
:weight: 1
:idempotent: true
:tags: []
:tags:
- :requires_disk_io
- :name: pipeline_background:ci_build_trace_chunk_flush
:feature_category: :continuous_integration
:has_external_dependencies:
......@@ -1034,7 +1036,8 @@
:resource_boundary: :unknown
:weight: 3
:idempotent:
:tags: []
:tags:
- :requires_disk_io
- :name: pipeline_default:build_trace_sections
:feature_category: :continuous_integration
:has_external_dependencies:
......@@ -1042,7 +1045,8 @@
:resource_boundary: :unknown
:weight: 3
:idempotent:
:tags: []
:tags:
- :requires_disk_io
- :name: pipeline_default:ci_create_cross_project_pipeline
:feature_category: :continuous_integration
:has_external_dependencies:
......@@ -1299,7 +1303,8 @@
:resource_boundary: :unknown
:weight: 2
:idempotent:
:tags: []
:tags:
- :requires_disk_io
- :name: create_commit_signature
:feature_category: :source_code_management
:has_external_dependencies:
......@@ -1419,7 +1424,8 @@
:resource_boundary: :unknown
:weight: 1
:idempotent:
:tags: []
:tags:
- :requires_disk_io
- :name: export_csv
:feature_category: :issue_tracking
:has_external_dependencies:
......@@ -1483,7 +1489,8 @@
:resource_boundary: :unknown
:weight: 1
:idempotent:
:tags: []
:tags:
- :requires_disk_io
- :name: group_export
:feature_category: :importers
:has_external_dependencies:
......@@ -1635,7 +1642,8 @@
:resource_boundary: :unknown
:weight: 1
:idempotent:
:tags: []
:tags:
- :requires_disk_io
- :name: pages_domain_ssl_renewal
:feature_category: :pages
:has_external_dependencies:
......@@ -1643,7 +1651,8 @@
:resource_boundary: :unknown
:weight: 1
:idempotent:
:tags: []
:tags:
- :requires_disk_io
- :name: pages_domain_verification
:feature_category: :pages
:has_external_dependencies:
......@@ -1651,7 +1660,8 @@
:resource_boundary: :unknown
:weight: 1
:idempotent:
:tags: []
:tags:
- :requires_disk_io
- :name: pages_remove
:feature_category: :pages
:has_external_dependencies:
......@@ -1723,7 +1733,8 @@
:resource_boundary: :unknown
:weight: 1
:idempotent:
:tags: []
:tags:
- :requires_disk_io
- :name: project_export
:feature_category: :importers
:has_external_dependencies:
......
......@@ -4,6 +4,8 @@ class ArchiveTraceWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker
include PipelineBackgroundQueue
tags :requires_disk_io
# rubocop: disable CodeReuse/ActiveRecord
def perform(job_id)
Ci::Build.without_archived_trace.find_by(id: job_id).try do |job|
......
......@@ -4,6 +4,8 @@ class BuildCoverageWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker
include PipelineQueue
tags :requires_disk_io
# rubocop: disable CodeReuse/ActiveRecord
def perform(build_id)
Ci::Build.find_by(id: build_id)&.update_coverage
......
......@@ -4,6 +4,8 @@ class BuildTraceSectionsWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker
include PipelineQueue
tags :requires_disk_io
# rubocop: disable CodeReuse/ActiveRecord
def perform(build_id)
Ci::Build.find_by(id: build_id)&.parse_trace_sections!
......
......@@ -7,6 +7,7 @@ class ChatNotificationWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: false
feature_category :chatops
tags :requires_disk_io
urgency :low # Can't be high as it has external dependencies
weight 2
worker_has_external_dependencies!
......
......@@ -5,6 +5,8 @@ module Ci
include ApplicationWorker
include PipelineBackgroundQueue
tags :requires_disk_io
idempotent!
def perform(build_id)
......
......@@ -4,6 +4,7 @@ class ExpireBuildInstanceArtifactsWorker # rubocop:disable Scalability/Idempoten
include ApplicationWorker
feature_category :continuous_integration
tags :requires_disk_io
# rubocop: disable CodeReuse/ActiveRecord
def perform(build_id)
......
......@@ -5,6 +5,7 @@ class GroupDestroyWorker # rubocop:disable Scalability/IdempotentWorker
include ExceptionBacktrace
feature_category :subgroups
tags :requires_disk_io
def perform(group_id, user_id)
begin
......
......@@ -4,6 +4,7 @@ class PagesDomainSslRenewalWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker
feature_category :pages
tags :requires_disk_io
def perform(domain_id)
domain = PagesDomain.find_by_id(domain_id)
......
......@@ -4,6 +4,7 @@ class PagesDomainVerificationWorker # rubocop:disable Scalability/IdempotentWork
include ApplicationWorker
feature_category :pages
tags :requires_disk_io
# rubocop: disable CodeReuse/ActiveRecord
def perform(domain_id)
......
......@@ -6,6 +6,7 @@ class PagesWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: 3
feature_category :pages
loggable_arguments 0, 1
tags :requires_disk_io
def perform(action, *arg)
send(action, *arg) # rubocop:disable GitlabSecurity/PublicSend
......
......@@ -5,6 +5,7 @@ class ProjectDestroyWorker # rubocop:disable Scalability/IdempotentWorker
include ExceptionBacktrace
feature_category :source_code_management
tags :requires_disk_io
def perform(project_id, user_id, params)
project = Project.find(project_id)
......
......@@ -522,7 +522,8 @@
:resource_boundary: :unknown
:weight: 2
:idempotent:
:tags: []
:tags:
- :requires_disk_io
- :name: security_scans:store_security_scans
:feature_category: :static_application_security_testing
:has_external_dependencies:
......@@ -530,7 +531,8 @@
:resource_boundary: :unknown
:weight: 2
:idempotent:
:tags: []
:tags:
- :requires_disk_io
- :name: security_scans:sync_security_reports_to_report_approval_rules
:feature_category: :static_application_security_testing
:has_external_dependencies:
......@@ -706,7 +708,8 @@
:resource_boundary: :unknown
:weight: 1
:idempotent: true
:tags: []
:tags:
- :requires_disk_io
- :name: status_page_publish
:feature_category: :incident_management
:has_external_dependencies: true
......
......@@ -6,6 +6,7 @@ module RequirementsManagement
feature_category :requirements_management
idempotent!
tags :requires_disk_io
def perform(build_id)
::Ci::Build.find_by_id(build_id).try do |build|
......
......@@ -6,6 +6,8 @@ class StoreSecurityReportsWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker
include SecurityScansQueue
tags :requires_disk_io
def perform(pipeline_id)
Ci::Pipeline.find(pipeline_id).try do |pipeline|
break unless pipeline.project.can_store_security_reports?
......
......@@ -4,6 +4,8 @@ class StoreSecurityScansWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker
include SecurityScansQueue
tags :requires_disk_io
# rubocop: disable CodeReuse/ActiveRecord
def perform(build_id)
::Ci::Build.find_by(id: build_id).try do |build|
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment