我正在从delayed_jobs切换到sidekiq,并且我在让sidekiq排队工作时遇到了一些问题。
按照sidekiq.org上的示例,我创建了以下类:
class HardWorker
include Sidekiq::Worker
sidekiq_options queue: "publish_queue"
def perform(name, count)
puts 'Doing hard work'
end
end
我使用以下命令启动了sidekiq:bundle exec sidekiq -e development -C config / sidekiq.yml
当我在worker上运行perform_async时,我希望它能排队。我的事件得到了一个工作ID,但没有任何人入队。
这是我收到的输出:
2.0.0p247 :001 > HardWorker.perform_async('bob', 5)
=> "d376dcd5f06ccb2633a5e76c"
当我在Web界面中查看队列时,没有可用的队列。默认队列甚至不存在。
这是我的sidekiq.yml文件。
development:
verbose: true
concurrency: 15
queues:
- [publish_queue, 10]
- [mailer_queue, 2]
- [default, 5]
答案 0 :(得分:14)
问题是在开发小组中有rspec-sidekiq
group :development, :test do
gem 'yard'
gem 'pry'
gem 'rspec-rails'
gem 'rspec'
gem 'rspec-sidekiq'
end