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

Add .registered_workers and .registered_queues to Sidekiq::Client

This commit is contained in:
Mike Perham 2012-02-15 11:28:19 -08:00
parent 64e72eef28
commit ac5d879361
3 changed files with 22 additions and 4 deletions

View file

@ -20,8 +20,16 @@ module Sidekiq
end
end
def self.queues
@queues ||= {}
def self.registered_workers
redis.smembers('workers')
end
def self.registered_queues
redis.smembers('queues')
end
def self.queue_mappings
@queue_mappings ||= {}
end
def self.redis
@ -38,7 +46,7 @@ module Sidekiq
raise(ArgumentError, "Message must be a Hash of the form: { 'class' => SomeClass, 'args' => ['bob', 1, :foo => 'bar'] }") unless item.is_a?(Hash)
raise(ArgumentError, "Message must include a class and set of arguments: #{item.inspect}") if !item['class'] || !item['args']
queue = queue || queues[item['class'].to_s] || 'default'
queue = queue || queue_mappings[item['class'].to_s] || 'default'
item['class'] = item['class'].to_s if !item['class'].is_a?(String)

View file

@ -34,7 +34,7 @@ module Sidekiq
end
def queue(name)
Sidekiq::Client.queues[self.name] = name.to_s
Sidekiq::Client.queue_mappings[self.name] = name.to_s
end
end
end

View file

@ -88,5 +88,15 @@ class TestClient < MiniTest::Unit::TestCase
assert pushed
@redis.verify
end
it 'retrieves queues' do
@redis.expect :smembers, ['bob'], ['queues']
assert_equal ['bob'], Sidekiq::Client.registered_queues
end
it 'retrieves workers' do
@redis.expect :smembers, ['bob'], ['workers']
assert_equal ['bob'], Sidekiq::Client.registered_workers
end
end
end