From 96f2bec8d6d9447d4f37ee55143a73f5fc1850a6 Mon Sep 17 00:00:00 2001 From: "Andrew Kozin (nepalez)" Date: Wed, 10 Mar 2021 17:15:37 +0300 Subject: [PATCH] Fix compatibility issue for sidekiq v6.1.0+ Since v6.1.0 Sidekiq::BasicFetcher doesn't support class-level method bulk_requeue. See https://github.com/mperham/sidekiq/pull/4602 for details. For backwards compatibility we should support both interfaces depending on class method presence. --- lib/sidekiq/limit_fetch.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/sidekiq/limit_fetch.rb b/lib/sidekiq/limit_fetch.rb index d91c301..1610fb0 100644 --- a/lib/sidekiq/limit_fetch.rb +++ b/lib/sidekiq/limit_fetch.rb @@ -26,8 +26,14 @@ def retrieve_work UnitOfWork.new(queue, job) if job end + # Backwards compatibility for sidekiq v6.1.0 + # @see https://github.com/mperham/sidekiq/pull/4602 def bulk_requeue(*args) - Sidekiq::BasicFetch.bulk_requeue(*args) + if Sidekiq::BasicFetch.respond_to?(:bulk_requeue) # < 6.1.0 + Sidekiq::BasicFetch.bulk_requeue(*args) + else # 6.1.0+ + Sidekiq::BasicFetch.new(Sidekiq.options).bulk_requeue(*args) + end end def redis_retryable