Commit b1df5445 authored by Nikola Milojevic's avatar Nikola Milojevic

Merge branch 'fix-sidekiq-sleep-time' into 'master'

Fix Sidekiq sleep time for jobs that use replicas

See merge request gitlab-org/gitlab!75081
parents ad4222b6 80e0b45e
...@@ -61,8 +61,9 @@ module Gitlab ...@@ -61,8 +61,9 @@ module Gitlab
end end
def sleep_if_needed(job) def sleep_if_needed(job)
time_diff = Time.current.to_f - job['created_at'].to_f remaining_delay = MINIMUM_DELAY_INTERVAL - (Time.current.to_f - job['created_at'].to_f)
sleep time_diff if time_diff > 0 && time_diff < MINIMUM_DELAY_INTERVAL
sleep remaining_delay if remaining_delay > 0 && remaining_delay < MINIMUM_DELAY_INTERVAL
end end
def get_wal_locations(job) def get_wal_locations(job)
......
...@@ -152,7 +152,7 @@ RSpec.describe Gitlab::Database::LoadBalancing::SidekiqServerMiddleware, :clean_ ...@@ -152,7 +152,7 @@ RSpec.describe Gitlab::Database::LoadBalancing::SidekiqServerMiddleware, :clean_
let(:elapsed_time) { described_class::MINIMUM_DELAY_INTERVAL - 0.3 } let(:elapsed_time) { described_class::MINIMUM_DELAY_INTERVAL - 0.3 }
it 'sleeps until the minimum delay is reached' do it 'sleeps until the minimum delay is reached' do
expect(middleware).to receive(:sleep).with(be_within(0.01).of(elapsed_time)) expect(middleware).to receive(:sleep).with(be_within(0.01).of(described_class::MINIMUM_DELAY_INTERVAL - elapsed_time))
run_middleware run_middleware
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