blob: e04e3ab3cc7be94f40ba6fa3d791cab92e1e8af2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# frozen_string_literal: true
module Database
class CiProjectMirrorsConsistencyCheckWorker
include ApplicationWorker
include CronjobQueue # rubocop: disable Scalability/CronWorkerContext
sidekiq_options retry: false
feature_category :cell
data_consistency :sticky
idempotent!
version 1
def perform
results = ConsistencyCheckService.new(
source_model: Project,
target_model: Ci::ProjectMirror,
source_columns: %w[id namespace_id],
target_columns: %w[project_id namespace_id]
).execute
if results[:mismatches_details].any?
ConsistencyFixService.new(
source_model: Project,
target_model: Ci::ProjectMirror,
sync_event_class: Projects::SyncEvent,
source_sort_key: :id,
target_sort_key: :project_id
).execute(ids: results[:mismatches_details].map { |h| h[:id] })
end
log_extra_metadata_on_done(:results, results)
end
end
end
|