Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/ci/process_sync_events_service.rb')
-rw-r--r--app/services/ci/process_sync_events_service.rb15
1 files changed, 12 insertions, 3 deletions
diff --git a/app/services/ci/process_sync_events_service.rb b/app/services/ci/process_sync_events_service.rb
index 11ce6e8eeaf..d90ee02b1c6 100644
--- a/app/services/ci/process_sync_events_service.rb
+++ b/app/services/ci/process_sync_events_service.rb
@@ -2,7 +2,6 @@
module Ci
class ProcessSyncEventsService
- include Gitlab::Utils::StrongMemoize
include ExclusiveLeaseGuard
BATCH_SIZE = 1000
@@ -10,22 +9,27 @@ module Ci
def initialize(sync_event_class, sync_class)
@sync_event_class = sync_event_class
@sync_class = sync_class
+ @results = {}
end
def execute
- return unless ::Feature.enabled?(:ci_namespace_project_mirrors, default_enabled: :yaml)
-
# preventing parallel processing over the same event table
try_obtain_lease { process_events }
enqueue_worker_if_there_still_event
+
+ @results
end
private
def process_events
+ add_result(estimated_total_events: @sync_event_class.upper_bound_count)
+
events = @sync_event_class.preload_synced_relation.first(BATCH_SIZE)
+ add_result(consumable_events: events.size)
+
return if events.empty?
processed_events = []
@@ -37,6 +41,7 @@ module Ci
processed_events << event
end
ensure
+ add_result(processed_events: processed_events.size)
@sync_event_class.id_in(processed_events).delete_all
end
end
@@ -52,5 +57,9 @@ module Ci
def lease_timeout
1.minute
end
+
+ def add_result(result)
+ @results.merge!(result)
+ end
end
end