diff options
author | Stan Hu <stanhu@gmail.com> | 2018-06-17 18:05:56 +0000 |
---|---|---|
committer | Chris Peressini <cperessini@gitlab.com> | 2018-06-19 14:16:07 +0200 |
commit | 28b26c9a4c160d3e00e2ff5aababde80d529059d (patch) | |
tree | 75bdb8cb8ebe63a606248cc1026b05757e720dcd | |
parent | 598e703ab0d809fbdf14608d5ec3378e333925f7 (diff) | |
download | gitlab-ce-28b26c9a4c160d3e00e2ff5aababde80d529059d.tar.gz |
Merge branch 'optimise-paused-runners' into 'master'
Optimise paused runners
See merge request gitlab-org/gitlab-ce!19946
-rw-r--r-- | changelogs/unreleased/optimise-paused-runners.yml | 5 | ||||
-rw-r--r-- | lib/api/runner.rb | 6 | ||||
-rw-r--r-- | spec/requests/api/runner_spec.rb | 4 |
3 files changed, 13 insertions, 2 deletions
diff --git a/changelogs/unreleased/optimise-paused-runners.yml b/changelogs/unreleased/optimise-paused-runners.yml new file mode 100644 index 00000000000..13097e507d3 --- /dev/null +++ b/changelogs/unreleased/optimise-paused-runners.yml @@ -0,0 +1,5 @@ +--- +title: Optimise paused runners to reduce amount of used requests +merge_request: +author: +type: performance diff --git a/lib/api/runner.rb b/lib/api/runner.rb index dc102259ca8..96a02914faa 100644 --- a/lib/api/runner.rb +++ b/lib/api/runner.rb @@ -84,7 +84,11 @@ module API end post '/request' do authenticate_runner! - no_content! unless current_runner.active? + + unless current_runner.active? + header 'X-GitLab-Last-Update', current_runner.ensure_runner_queue_value + break no_content! + end if current_runner.runner_queue_value_latest?(params[:last_update]) header 'X-GitLab-Last-Update', params[:last_update] diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index 57d238ff79b..b26c14ca5d4 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -351,11 +351,13 @@ describe API::Runner, :clean_gitlab_redis_shared_state do context 'when valid token is provided' do context 'when Runner is not active' do let(:runner) { create(:ci_runner, :inactive) } + let(:update_value) { runner.ensure_runner_queue_value } it 'returns 204 error' do request_job - expect(response).to have_gitlab_http_status 204 + expect(response).to have_gitlab_http_status(204) + expect(response.header['X-GitLab-Last-Update']).to eq(update_value) end end |