Skip to content
Snippets Groups Projects
Commit b78954c1 authored by Oswaldo Ferreir's avatar Oswaldo Ferreir
Browse files

Simplify check for running job on Redis

parent 9ab02540
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -396,7 +396,7 @@ class MergeRequest < ActiveRecord::Base
end
 
def merge_ongoing?
!!merge_jid && !merged? && Gitlab::SidekiqStatus.num_running([merge_jid]) > 0
!!merge_jid && !merged? && Gitlab::SidekiqStatus.running?(merge_jid)
end
 
def closed_without_fork?
Loading
Loading
Loading
Loading
@@ -51,6 +51,13 @@ module Gitlab
self.num_running(job_ids).zero?
end
 
# Returns true if the given job is running
#
# job_id - The Sidekiq job ID to check.
def self.running?(job_id)
num_running([job_id]) > 0
end
# Returns the number of jobs that are running.
#
# job_ids - The Sidekiq job IDs to check.
Loading
Loading
Loading
Loading
@@ -39,6 +39,18 @@ describe Gitlab::SidekiqStatus do
end
end
 
describe '.running?', :clean_gitlab_redis_shared_state do
it 'returns true if job is running' do
described_class.set('123')
expect(described_class.running?('123')).to be(true)
end
it 'returns false if job is not found' do
expect(described_class.running?('123')).to be(false)
end
end
describe '.num_running', :clean_gitlab_redis_shared_state do
it 'returns 0 if all jobs have been completed' do
expect(described_class.num_running(%w(123))).to eq(0)
Loading
Loading
Loading
Loading
@@ -1462,7 +1462,7 @@ describe MergeRequest do
describe '#merge_ongoing?' do
it 'returns true when merge_id, MR is not merged and it has no running job' do
merge_request = build_stubbed(:merge_request, state: :open, merge_jid: 'foo')
allow(Gitlab::SidekiqStatus).to receive(:num_running).with(['foo']) { 1 }
allow(Gitlab::SidekiqStatus).to receive(:running?).with('foo') { true }
 
expect(merge_request.merge_ongoing?).to be(true)
end
Loading
Loading
@@ -1481,7 +1481,7 @@ describe MergeRequest do
 
it 'returns false if there is no merge job running' do
merge_request = build_stubbed(:merge_request, state: :open, merge_jid: 'foo')
allow(Gitlab::SidekiqStatus).to receive(:num_running).with(['foo']) { 0 }
allow(Gitlab::SidekiqStatus).to receive(:running?).with('foo') { false }
 
expect(merge_request.merge_ongoing?).to be(false)
end
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment