2014-09-24 2 views
0

Я хочу, чтобы иметь возможность удалить всю работу в очереди, но я не знаю, какая она. Я выполняю метод моего работника, и мне нужно получить «текущую очередь», очередь, откуда приходит текущее задание.Могу ли я получить текущую очередь в методе выполнения работника с sidekiq/redis?

за это время я использую:

require 'sidekiq/api' 
queue = Sidekiq::Queue.new 
queue.each do |job| 
    job.delete 
end 

, потому что я просто использовать «очередь по умолчанию», это работа.

Но теперь я буду использовать много очередей, и я не могу указать только одну очередь для этого рабочего, потому что мне нужно использовать лоты для балансировки нагрузки на сервер.

Так как я могу получить очередь, где мы находимся в методе выполнения?

thx.

ответ

2

Вы не можете по дизайну, это ортогональный контекст работы. Если ваша работа должна знать имя очереди, передайте ее явно как аргумент.

Это намного быстрее:

Sidekiq::Queue.new.clear 
Смежные вопросы