Sidekiq:如何将队列作为变量传递给worker

时间:2015-06-01 23:24:06

标签: sidekiq

我有一个像这样的工人:

class MassDispatchServiceWorker
  include Sidekiq::Worker
  sidekiq_options queue: :bulk

  def perform(message_params)
    DispatchService.new(message_params).dispatch!
  end
end

但是我需要相同的方法,但要将队列作为变量传入。有时候我希望队列是批量的,有时候我还需要别的东西。是否可以使用sidekiq?

2 个答案:

答案 0 :(得分:0)

使用Sidekiq::Client API。

Sidekiq::Client.push('class' => MassDispatchServiceWorker, 'args' => [], 'queue' => whatever)

答案 1 :(得分:0)

还有另一种方式:

MyWorker.set(queue: 'foo').perform_async(1)

来自https://github.com/mperham/sidekiq/issues/2152#issuecomment-290376790