diff --git a/lib/sidekiq/client.rb b/lib/sidekiq/client.rb index 65ba3f69..8bc9aff7 100644 --- a/lib/sidekiq/client.rb +++ b/lib/sidekiq/client.rb @@ -61,14 +61,22 @@ module Sidekiq !! pushed end - # Redis compatibility helper. Example usage: + # Resque compatibility helpers. # - # Sidekiq::Client.enqueue(MyWorker, 'foo', 1, :bat => 'bar') + # Example usage: + # Sidekiq::Client.enqueue(MyWorker, 'foo', 1, :bat => 'bar') # # Messages are enqueued to the 'default' queue. # def self.enqueue(klass, *args) klass.perform_async(*args) end + + # Example usage: + # Sidekiq::Client.enqueue_to(:queue_name, MyWorker, 'foo', 1, :bat => 'bar') + # + def self.enqueue_to(queue, klass, *args) + klass.perform_in_queue(queue, *args) + end end end diff --git a/lib/sidekiq/worker.rb b/lib/sidekiq/worker.rb index 6a2ada51..50bb021d 100644 --- a/lib/sidekiq/worker.rb +++ b/lib/sidekiq/worker.rb @@ -35,6 +35,11 @@ module Sidekiq client_push('class' => self, 'args' => args) end + def perform_in_queue(queue, *args) + client_push('queue' => queue, 'class' => self, 'args' => args) + end + alias_method :perform_at_queue, :perform_in_queue + def perform_in(interval, *args) int = interval.to_f ts = (int < 1_000_000_000 ? Time.now.to_f + int : int)