Sidekiq无法排队作业

4

我正在从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]
1个回答

15

问题在于将rspec-sidekiq放在开发组中。

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

好发现!我刚刚浪费太多时间试图自己解决这个问题了。 - Drew Dara-Abrams
哇,我觉得这应该被添加到所有与这个宝石相关的维基中,非常好的发现... - Marrs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接