Skip to content
Snippets Groups Projects
Commit 575a9747 authored by Yorick Peterse's avatar Yorick Peterse
Browse files

Merge branch 'change-update-interval-of-runners' into 'master'

Change update interval of runners when trying to preserve contacted_at

See merge request !6126
parents 6343a3c4 6a29ac7d
No related branches found
No related tags found
1 merge request!6126Change update interval of runners when trying to preserve contacted_at
Pipeline #
Loading
@@ -73,6 +73,7 @@ v 8.12.0 (unreleased)
Loading
@@ -73,6 +73,7 @@ v 8.12.0 (unreleased)
- Fix badge count alignment (ClemMakesApps) - Fix badge count alignment (ClemMakesApps)
- Remove green outline from `New branch unavailable` button on issue page !5858 (winniehell) - Remove green outline from `New branch unavailable` button on issue page !5858 (winniehell)
- Fix repo title alignment (ClemMakesApps) - Fix repo title alignment (ClemMakesApps)
- Change update interval of contacted_at
- Fix branch title trailing space on hover (ClemMakesApps) - Fix branch title trailing space on hover (ClemMakesApps)
- Award emoji tooltips containing more than 10 usernames are now truncated !4780 (jlogandavison) - Award emoji tooltips containing more than 10 usernames are now truncated !4780 (jlogandavison)
- Fix duplicate "me" in award emoji tooltip !5218 (jlogandavison) - Fix duplicate "me" in award emoji tooltip !5218 (jlogandavison)
Loading
Loading
Loading
@@ -2,7 +2,7 @@ module Ci
Loading
@@ -2,7 +2,7 @@ module Ci
class Runner < ActiveRecord::Base class Runner < ActiveRecord::Base
extend Ci::Model extend Ci::Model
   
LAST_CONTACT_TIME = 5.minutes.ago LAST_CONTACT_TIME = 2.hours.ago
AVAILABLE_SCOPES = %w[specific shared active paused online] AVAILABLE_SCOPES = %w[specific shared active paused online]
FORM_EDITABLE = %i[description tag_list active run_untagged locked] FORM_EDITABLE = %i[description tag_list active run_untagged locked]
   
Loading
Loading
Loading
@@ -12,7 +12,7 @@ module Ci
Loading
@@ -12,7 +12,7 @@ module Ci
# POST /builds/register # POST /builds/register
post "register" do post "register" do
authenticate_runner! authenticate_runner!
update_runner_last_contact update_runner_last_contact(save: false)
update_runner_info update_runner_info
required_attributes! [:token] required_attributes! [:token]
not_found! unless current_runner.active? not_found! unless current_runner.active?
Loading
Loading
Loading
@@ -3,7 +3,7 @@ module Ci
Loading
@@ -3,7 +3,7 @@ module Ci
module Helpers module Helpers
BUILD_TOKEN_HEADER = "HTTP_BUILD_TOKEN" BUILD_TOKEN_HEADER = "HTTP_BUILD_TOKEN"
BUILD_TOKEN_PARAM = :token BUILD_TOKEN_PARAM = :token
UPDATE_RUNNER_EVERY = 60 UPDATE_RUNNER_EVERY = 40 * 60
   
def authenticate_runners! def authenticate_runners!
forbidden! unless runner_registration_token_valid? forbidden! unless runner_registration_token_valid?
Loading
@@ -22,11 +22,13 @@ module Ci
Loading
@@ -22,11 +22,13 @@ module Ci
params[:token] == current_application_settings.runners_registration_token params[:token] == current_application_settings.runners_registration_token
end end
   
def update_runner_last_contact def update_runner_last_contact(save: true)
# Use a random threshold to prevent beating DB updates # Use a random threshold to prevent beating DB updates
# it generates a distribution between: [40m, 80m]
contacted_at_max_age = UPDATE_RUNNER_EVERY + Random.rand(UPDATE_RUNNER_EVERY) 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 if current_runner.contacted_at.nil? || Time.now - current_runner.contacted_at >= contacted_at_max_age
current_runner.update_attributes(contacted_at: Time.now) current_runner.contacted_at = Time.now
current_runner.save if current_runner.changed? && save
end end
end end
   
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment