diff options
Diffstat (limited to 'app/workers/database/ci_project_mirrors_consistency_check_worker.rb')
-rw-r--r-- | app/workers/database/ci_project_mirrors_consistency_check_worker.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/workers/database/ci_project_mirrors_consistency_check_worker.rb b/app/workers/database/ci_project_mirrors_consistency_check_worker.rb new file mode 100644 index 00000000000..e9413256617 --- /dev/null +++ b/app/workers/database/ci_project_mirrors_consistency_check_worker.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +module Database + class CiProjectMirrorsConsistencyCheckWorker + include ApplicationWorker + include CronjobQueue # rubocop: disable Scalability/CronWorkerContext + + sidekiq_options retry: false + feature_category :sharding + data_consistency :sticky + idempotent! + + version 1 + + def perform + return if Feature.disabled?(:ci_project_mirrors_consistency_check, default_enabled: :yaml) + + results = ConsistencyCheckService.new( + source_model: Project, + target_model: Ci::ProjectMirror, + source_columns: %w[id namespace_id], + target_columns: %w[project_id namespace_id] + ).execute + + log_extra_metadata_on_done(:results, results) + end + end +end |