原因是在我们的案例中:Sidekiq可能查找错误的队列。默认情况下,Sidekiq使用名为“默认”的队列。我们使用了两个不同的队列名称,并在config /
sidekiq.yml中定义了它们。
# configuration file for Sidekiq:queues: - queue_name_1 - queue_name_2
问题在于,默认情况下,此配置文件 不会 在您的开发环境中通过简单的命令 自动加载
(不同于
database.yml或
thinking_sphinx.yml例如)
bundle execsidekiq。因此,我们将作业写在两个特定的队列中,而Sidekiq正在等待第三个队列(默认队列)中的作业。您必须通过
-C或
--config选项将路径作为参数传递到配置文件:
bundle exec sidekiq -C ./config/sidekiq.yml
或者,您可以直接传递队列名称(逗号后在此处不允许空格):
bundle exec sidekiq -q queue_name_1,queue_name_2
要找出问题所在,也可以通过选项
-v或
--verbose在命令行中传递或在文件中使用是很有帮助
:verbose:true的
sidekiq.yml。如果未加载配置文件,则配置文件中定义的所有内容当然都是无用的。因此,请确保首先使用正确的配置文件。



