Commit 536ebecf authored by Douglas Barbosa Alexandre's avatar Douglas Barbosa Alexandre

Merge branch 'mc-reduce-namespaces-lease-time' into 'master'

Hardcodes namespaces lease timing value to 1.5h

See merge request gitlab-org/gitlab-ce!31341
parents c017dc57 52767ae1
......@@ -6,21 +6,13 @@ class Namespace::AggregationSchedule < ApplicationRecord
self.primary_key = :namespace_id
DEFAULT_LEASE_TIMEOUT = 3.hours
DEFAULT_LEASE_TIMEOUT = 1.5.hours.to_i
REDIS_SHARED_KEY = 'gitlab:update_namespace_statistics_delay'.freeze
belongs_to :namespace
after_create :schedule_root_storage_statistics
def self.delay_timeout
redis_timeout = Gitlab::Redis::SharedState.with do |redis|
redis.get(REDIS_SHARED_KEY)
end
redis_timeout.nil? ? DEFAULT_LEASE_TIMEOUT : redis_timeout.to_i
end
def schedule_root_storage_statistics
run_after_commit_or_now do
try_obtain_lease do
......@@ -28,7 +20,7 @@ class Namespace::AggregationSchedule < ApplicationRecord
.perform_async(namespace_id)
Namespaces::RootStatisticsWorker
.perform_in(self.class.delay_timeout, namespace_id)
.perform_in(DEFAULT_LEASE_TIMEOUT, namespace_id)
end
end
end
......@@ -37,7 +29,7 @@ class Namespace::AggregationSchedule < ApplicationRecord
# Used by ExclusiveLeaseGuard
def lease_timeout
self.class.delay_timeout
DEFAULT_LEASE_TIMEOUT
end
# Used by ExclusiveLeaseGuard
......
......@@ -7,24 +7,6 @@ RSpec.describe Namespace::AggregationSchedule, :clean_gitlab_redis_shared_state,
it { is_expected.to belong_to :namespace }
describe '.delay_timeout' do
context 'when timeout is set on redis' do
it 'uses personalized timeout' do
Gitlab::Redis::SharedState.with do |redis|
redis.set(described_class::REDIS_SHARED_KEY, 1.hour)
end
expect(described_class.delay_timeout).to eq(1.hour)
end
end
context 'when timeout is not set on redis' do
it 'uses default timeout' do
expect(described_class.delay_timeout).to eq(3.hours)
end
end
end
describe '#schedule_root_storage_statistics' do
let(:namespace) { create(:namespace) }
let(:aggregation_schedule) { namespace.build_aggregation_schedule }
......@@ -87,21 +69,5 @@ RSpec.describe Namespace::AggregationSchedule, :clean_gitlab_redis_shared_state,
aggregation_schedule.schedule_root_storage_statistics
end
end
context 'with a personalized lease timeout' do
before do
Gitlab::Redis::SharedState.with do |redis|
redis.set(described_class::REDIS_SHARED_KEY, 1.hour)
end
end
it 'uses a personalized time' do
expect(Namespaces::RootStatisticsWorker)
.to receive(:perform_in)
.with(1.hour, aggregation_schedule.namespace_id)
aggregation_schedule.save!
end
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment