3
votes

I am switching from delayed_jobs to sidekiq and I am having a bit of an issue with getting sidekiq to enqueue the jobs.

Following the example on sidekiq.org, I created the following class:

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

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

I started sidekiq with the following command: bundle exec sidekiq -e development -C config/sidekiq.yml

When I run perform_async on the worker, I would expect it to enqueue the job. I event get back a job id, but nothing is enqueued.

This is the output I receive:

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

When I look at the queues with in the web interface, there are no queues available. The default queue doesn't even exist.

This is my sidekiq.yml file.

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

1 Answers

14
votes

The issue was having rspec-sidekiq in the development group

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