From 52994bb915510f7f91008097d7f8bdb3c6cd2670 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Tue, 3 Nov 2015 16:14:42 +0000 Subject: [PATCH] Merge branch 'spread-runner-last-updated-at' into 'master' Spread out runner contacted_at updates This is meant to prevent having too many concurrent UPDATE requests caused by runners checking in. See merge request !1722 --- CHANGELOG | 4 ++++ lib/ci/api/helpers.rb | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 0f42d26edb..797ee2614f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,6 +4,10 @@ v 8.1.3 - Force update refs/merge-requests/X/head upon a push to the source branch of a merge request (Stan Hu) v 8.1.2 +v 8.1.3 + - Spread out runner contacted_at updates + +v 8.1.1 - Fix cloning Wiki repositories via HTTP (Stan Hu) - Add migration to remove satellites directory - Fix specific runners visibility diff --git a/lib/ci/api/helpers.rb b/lib/ci/api/helpers.rb index e602cda81d..7e4986b6af 100644 --- a/lib/ci/api/helpers.rb +++ b/lib/ci/api/helpers.rb @@ -16,7 +16,9 @@ module Ci end def update_runner_last_contact - if current_runner.contacted_at.nil? || Time.now - current_runner.contacted_at >= UPDATE_RUNNER_EVERY + # Use a random threshold to prevent beating DB updates + contacted_at_max_age = UPDATE_RUNNER_EVERY + Random.rand(UPDATE_RUNNER_EVERY) + if current_runner.contacted_at.nil? || Time.now - current_runner.contacted_at >= contacted_at_max_age current_runner.update_attributes(contacted_at: Time.now) end end