1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00

Properly handle namespaced queue names in Fetcher's UnitOfWork, fixes #744

This commit is contained in:
Mike Perham 2013-03-02 15:59:01 -08:00
parent a129a444fd
commit b9ae174755
2 changed files with 6 additions and 5 deletions

View file

@ -78,13 +78,13 @@ module Sidekiq
Sidekiq.logger.debug { "Re-queueing terminated jobs" }
jobs_to_requeue = {}
inprogress.each do |unit_of_work|
jobs_to_requeue[unit_of_work.queue] ||= []
jobs_to_requeue[unit_of_work.queue] << unit_of_work.message
jobs_to_requeue[unit_of_work.queue_name] ||= []
jobs_to_requeue[unit_of_work.queue_name] << unit_of_work.message
end
Sidekiq.redis do |conn|
jobs_to_requeue.each do |queue, jobs|
conn.rpush(queue, jobs)
conn.rpush("queue:#{queue}", jobs)
end
end
Sidekiq.logger.info("Pushed #{inprogress.size} messages back to Redis")
@ -101,7 +101,7 @@ module Sidekiq
def requeue
Sidekiq.redis do |conn|
conn.rpush(queue, message)
conn.rpush("queue:#{queue_name}", message)
end
end
end

View file

@ -4,6 +4,7 @@ require 'sidekiq/fetch'
class TestFetcher < MiniTest::Unit::TestCase
def setup
Sidekiq.redis = { :namespace => 'fuzzy' }
Sidekiq.redis do |conn|
conn.flushdb
conn.rpush('queue:basic', 'msg')
@ -35,7 +36,7 @@ class TestFetcher < MiniTest::Unit::TestCase
assert_equal 0, q1.size
assert_equal 0, q2.size
uow = Sidekiq::BasicFetch::UnitOfWork
Sidekiq::BasicFetch.bulk_requeue([uow.new('queue:foo', 'bob'), uow.new('queue:foo', 'bar'), uow.new('queue:bar', 'widget')])
Sidekiq::BasicFetch.bulk_requeue([uow.new('fuzzy:queue:foo', 'bob'), uow.new('fuzzy:queue:foo', 'bar'), uow.new('fuzzy:queue:bar', 'widget')])
assert_equal 2, q1.size
assert_equal 1, q2.size
end