From b41fcd2d1e96e077d6fc4af9a364776813929bc6 Mon Sep 17 00:00:00 2001 From: Justin Mazzi Date: Thu, 27 Jun 2013 12:22:50 -0400 Subject: [PATCH] Pass the entire message to sidekiq_retries_exhausted --- lib/sidekiq/middleware/server/retry_jobs.rb | 2 +- test/test_retry.rb | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/sidekiq/middleware/server/retry_jobs.rb b/lib/sidekiq/middleware/server/retry_jobs.rb index 611e155f..f7fa6538 100644 --- a/lib/sidekiq/middleware/server/retry_jobs.rb +++ b/lib/sidekiq/middleware/server/retry_jobs.rb @@ -99,7 +99,7 @@ module Sidekiq logger.warn { "Defining #{worker.class.name}#retries_exhausted as a method is deprecated, use `sidekiq_retries_exhausted` callback instead http://git.io/Ijju8g" } worker.retries_exhausted(*msg['args']) elsif worker.sidekiq_retries_exhausted_block? - worker.sidekiq_retries_exhausted_block.call(*msg['args']) + worker.sidekiq_retries_exhausted_block.call(msg) end rescue Exception => e diff --git a/test/test_retry.rb b/test/test_retry.rb index e09a7544..cd9e5dca 100644 --- a/test/test_retry.rb +++ b/test/test_retry.rb @@ -202,12 +202,17 @@ class TestRetry < Minitest::Test Class.new do include Sidekiq::Worker - sidekiq_retries_exhausted { |*args| args << "retried" } + sidekiq_retries_exhausted do |msg| + msg.tap {|m| m['called_by_callback'] = true } + end end end it 'calls worker sidekiq_retries_exhausted_block after too many retries' do - assert_equal [1,2, "foo", "retried"], handler.retries_exhausted(worker.new, msg) + new_msg = handler.retries_exhausted(worker.new, msg) + expected_msg = msg.merge('called_by_callback' => true) + + assert_equal expected_msg, new_msg, "sidekiq_retries_exhausted block not called" end end