Sidekiq:如何将队列作为变量传递给工作人员
Sidekiq: how to pass a queue as a variable into a worker
我有一个这样的工人:
class MassDispatchServiceWorker
include Sidekiq::Worker
sidekiq_options queue: :bulk
def perform(message_params)
DispatchService.new(message_params).dispatch!
end
end
但是我需要完全相同的方法,但需要将队列作为变量传递。有时我希望队列很庞大,有时我需要其他东西。 sidekiq 可以吗?
使用 Sidekiq::Client
API.
Sidekiq::Client.push('class' => MassDispatchServiceWorker, 'args' => [], 'queue' => whatever)
还有一个方法:
MyWorker.set(queue: 'foo').perform_async(1)
来自https://github.com/mperham/sidekiq/issues/2152#issuecomment-290376790
我有一个这样的工人:
class MassDispatchServiceWorker
include Sidekiq::Worker
sidekiq_options queue: :bulk
def perform(message_params)
DispatchService.new(message_params).dispatch!
end
end
但是我需要完全相同的方法,但需要将队列作为变量传递。有时我希望队列很庞大,有时我需要其他东西。 sidekiq 可以吗?
使用 Sidekiq::Client
API.
Sidekiq::Client.push('class' => MassDispatchServiceWorker, 'args' => [], 'queue' => whatever)
还有一个方法:
MyWorker.set(queue: 'foo').perform_async(1)
来自https://github.com/mperham/sidekiq/issues/2152#issuecomment-290376790