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/workers/ci/runners/reconcile_existing_runner_versions_cron_worker.rb')
-rw-r--r--app/workers/ci/runners/reconcile_existing_runner_versions_cron_worker.rb18
1 files changed, 16 insertions, 2 deletions
diff --git a/app/workers/ci/runners/reconcile_existing_runner_versions_cron_worker.rb b/app/workers/ci/runners/reconcile_existing_runner_versions_cron_worker.rb
index 035b2563e56..69ab477c80a 100644
--- a/app/workers/ci/runners/reconcile_existing_runner_versions_cron_worker.rb
+++ b/app/workers/ci/runners/reconcile_existing_runner_versions_cron_worker.rb
@@ -12,11 +12,25 @@ module Ci
feature_category :runner_fleet
urgency :low
+ deduplicate :until_executed
idempotent!
- def perform
+ def perform(cronjob_scheduled = true)
+ if cronjob_scheduled
+ # Introduce some randomness across the day so that instances don't all hit the GitLab Releases API
+ # around the same time of day
+ period = rand(0..12.hours.in_seconds)
+ self.class.perform_in(period, false)
+
+ Sidekiq.logger.info(
+ class: self.class.name,
+ message: "rescheduled job for #{period.seconds.from_now}")
+
+ return
+ end
+
result = ::Ci::Runners::ReconcileExistingRunnerVersionsService.new.execute
- result.each { |key, value| log_extra_metadata_on_done(key, value) }
+ result.payload.each { |key, value| log_extra_metadata_on_done(key, value) }
end
end
end