可能有哪些原因导致Sidekiq无法处理队列中的作业?队列已满。日志文件sidekiq.log
没有任何活动记录。因此,队列已满但日志为空,而Sidekiq似乎不处理项目。似乎没有工人在处理作业。重新启动Redis或使用FLUSHALL或FLUSHDB清除它没有效果。Sidekiq已经启动。
bundle exec sidekiq -L log/sidekiq.log
并生成以下日志文件:
2013-05-30..Booting Sidekiq 2.12.0 using redis://localhost:6379/0 with options {}
2013-05-30..Running in ruby 1.9.3p374 (2013-01-15 revision 38858) [i686-linux]
2013-05-30..See LICENSE and the LGPL-3.0 for licensing details.
2013-05-30..Starting processing, hit Ctrl-C to stop
你怎么找出问题出在哪里?有没有隐藏的日志文件?
queue_as
设置为一个不在我的sidekiq.yml
文件中的队列。 - stephen.hansonsidekiq -q queue_name_1 -q queue_name_2
,直接传递队列名称(逗号后面不允许有空格)。 - Wojtek Kosak Główczewskibundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e production
同时,您应该将以下内容添加到您的sidekiq.rb文件中:Sidekiq.configure_server do |config| config.redis = { url: 'redis://127.0.0.1:6379' } end Sidekiq.configure_client do |config| config.redis = { url: 'redis://127.0.0.1:6379' } end
- Lalit Yadav/config/sidekiq.yml
文件。 - Aleks-q queue_name_1,queue_name_2
是不正确的。您需要为每个队列使用专用的-q
标志(参见文档)。使用逗号后跟整数来指示队列权重。(我曾试图修正答案以达到这个效果,但编辑被拒绝了。) - bovender