diff --git a/lib/sidekiq/worker.rb b/lib/sidekiq/worker.rb index 95d8bd37..080ab36c 100644 --- a/lib/sidekiq/worker.rb +++ b/lib/sidekiq/worker.rb @@ -68,8 +68,8 @@ module Sidekiq hash end - def client_push(*args) # :nodoc: - Sidekiq::Client.push(*args) + def client_push(item) # :nodoc: + Sidekiq::Client.push(stringify_keys(item)) end end diff --git a/test/test_extensions.rb b/test/test_extensions.rb index a239d70d..8ecf067a 100644 --- a/test/test_extensions.rb +++ b/test/test_extensions.rb @@ -29,6 +29,14 @@ class TestExtensions < MiniTest::Unit::TestCase assert_equal 1, Sidekiq.redis {|c| c.llen('queue:default') } end + it 'uses and stringifies specified options' do + assert_equal [], Sidekiq::Client.registered_queues + assert_equal 0, Sidekiq.redis {|c| c.llen('queue:notdefault') } + MyModel.delay(queue: :notdefault).long_class_method + assert_equal ['notdefault'], Sidekiq::Client.registered_queues + assert_equal 1, Sidekiq.redis {|c| c.llen('queue:notdefault') } + end + it 'allows delayed scheduling of AR class methods' do assert_equal 0, Sidekiq.redis {|c| c.zcard('schedule') } MyModel.delay_for(5.days).long_class_method