Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion lib/sidekiq/instrument/mixin.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@ def max_retries(worker)
retries = fetch_worker_retry(worker)
case retries.to_s
when "true", ""
Sidekiq[:max_retries]
if Sidekiq.respond_to?(:default_configuration) # Sidekiq 7.0+
Sidekiq.default_configuration[:max_retries]
else # Sidekiq 6
Sidekiq[:max_retries]
end || Sidekiq::JobRetry::DEFAULT_MAX_RETRY_ATTEMPTS
when "false"
0
else
Expand Down
2 changes: 1 addition & 1 deletion lib/sidekiq/instrument/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module Sidekiq
module Instrument
VERSION = '0.9.0'
VERSION = '0.9.1'
end
end
20 changes: 14 additions & 6 deletions spec/sidekiq-instrument/server_middleware_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
require 'sidekiq/instrument/middleware/server'

RSpec.describe Sidekiq::Instrument::ServerMiddleware do
def set_max_retries(max_retries)
if Sidekiq.respond_to?(:default_configuration) # Sidekiq 7.0+
Sidekiq.default_configuration[:max_retries] = max_retries
else # Sidekiq 6
Sidekiq[:max_retries] = max_retries
end
end

describe '#call' do
let(:expected_dog_options) { { tags: ['queue:default', 'worker:my_worker'] } }
let(:expected_error_dog_options) { { tags: ['queue:default', 'worker:my_worker', 'error:RuntimeError'] } }
Expand All @@ -29,7 +37,7 @@

context 'when an initial job succeeds' do
before do
Sidekiq[:max_retries] = 0
set_max_retries(0)
end

it 'increments StatsD dequeue and success counters' do
Expand Down Expand Up @@ -103,7 +111,7 @@

context 'when a retried job succeeds' do
before do
Sidekiq[:max_retries] = 1
set_max_retries(1)
allow_any_instance_of(MyWorker).to receive(:perform).and_raise(RuntimeError.new('foo'))

# This makes the job look like a retry since we can't access the job argument
Expand Down Expand Up @@ -131,7 +139,7 @@

context 'when a job fails' do
before do
Sidekiq[:max_retries] = 0
set_max_retries(0)
allow_any_instance_of(MyWorker).to receive(:perform).and_raise(RuntimeError.new('foo'))
end

Expand Down Expand Up @@ -184,7 +192,7 @@
context 'when the worker has retries disabled' do
shared_examples 'it does not attempt to track retries' do |retry_value|
before do
Sidekiq[:max_retries] = 1
set_max_retries(1)
allow(MyWorker).to receive(:get_sidekiq_options).and_return({ "retry" => retry_value, "queue" => 'default' })
end

Expand Down Expand Up @@ -218,7 +226,7 @@
context 'when the current job has retries left to attempt' do
shared_examples 'it tracks the retries with DogStatsD' do |retry_value|
before do
Sidekiq[:max_retries] = 2
set_max_retries(2)
allow(MyWorker).to receive(:get_sidekiq_options).and_return({ "retry" => retry_value, "queue" => 'default' })
end

Expand Down Expand Up @@ -253,7 +261,7 @@

context 'when the job is on its last retry attempt' do
before do
Sidekiq[:max_retries] = 1
set_max_retries(1)

# This makes the job look like a retry since we can't access the job argument
allow_any_instance_of(Sidekiq::Instrument::ServerMiddleware).to receive(:current_retries).and_return(1)
Expand Down
Loading