2013-12-04 1 views
2

Я переключился с delayed_jobs на sidekiq, и у меня возникла небольшая проблема с получением sidekiq для размещения заданий.Sidekiq not enqueuing jobs

Следуя примеру на sidekiq.org, я создал следующий класс:

class HardWorker 
include Sidekiq::Worker 
sidekiq_options queue: "publish_queue" 

def perform(name, count) 
    puts 'Doing hard work' 
end 
end 

Я начал sidekiq с помощью следующей команды: расслоение Exec sidekiq -e развитие -C конфиг/sidekiq.yml

Когда я запускаю perform_async для рабочего, я ожидаю, что он закроет задание. I событие возвращает идентификатор работы, но ничего не помещается в очередь.

Это выход я получаю:

2.0.0p247 :001 > HardWorker.perform_async('bob', 5) 
=> "d376dcd5f06ccb2633a5e76c" 

Когда я смотрю на очереди с помощью веб-интерфейса, есть никаких очередей доступны. Очередь по умолчанию даже не существует.

Это мой файл sidekiq.yml.

development: 
    verbose: true 
    concurrency: 15 
    queues: 
    - [publish_queue, 10] 
    - [mailer_queue, 2] 
    - [default, 5] 

ответ

13

Вопрос был с RSpec-sidekiq в группе развития

group :development, :test do 
    gem 'yard' 
    gem 'pry' 
    gem 'rspec-rails' 
    gem 'rspec' 
    gem 'rspec-sidekiq' 
end 
+0

хороший улов! Я просто потратил слишком много времени, пытаясь понять это. –

+0

Wow я чувствую, что это должно быть добавлено ко всем вики, относящимся к этому драгоценному камню, большой улов. , , – Marrs