diff --git a/lib/sidekiq_unique_jobs/orphans/ruby_reaper.rb b/lib/sidekiq_unique_jobs/orphans/ruby_reaper.rb index 56b61154..dcfcca6b 100644 --- a/lib/sidekiq_unique_jobs/orphans/ruby_reaper.rb +++ b/lib/sidekiq_unique_jobs/orphans/ruby_reaper.rb @@ -229,6 +229,7 @@ def entries(conn, queue, &block) # rubocop:disable Metrics/MethodLength loop do range_start = (page * page_size) - deleted_size + range_end = range_start + page_size - 1 entries = conn.lrange(queue_key, range_start, range_end) page += 1 @@ -238,6 +239,9 @@ def entries(conn, queue, &block) # rubocop:disable Metrics/MethodLength entries.each(&block) deleted_size = initial_size - conn.llen(queue_key) + + # The queue is growing, not shrinking, just keep looping + deleted_size = 0 if deleted_size.negative? end end