我有一个Sidekiq工作人员在本地运行良好,但是当部署到Heroku时,作业就被卡在队列中了。我正在使用Redis to go nano,并让它启动和运行,我已经在Heroku上将工作人员缩放到1,并且可以看到它已经启动了。我只是在使用默认的队列--没有什么定制的或花哨的。这是我的代码:
config/unicorn.rb:
Sidekiq.configure_client do |config|
config.redis = { size: 1, namespace: 'sidekiq' }
end配置/初始化器/redis.rb
uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379")
REDIS = Redis.new(:url => ENV['REDISTOGO_URL'])Procfile
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: bundle exec sidekiq -c 5 -v -q default我可以在队列中看到作业,但它不是本地处理的。任何建议都是非常感谢的-谢谢!
发布于 2014-10-10 15:38:03
不清楚到底是什么问题,但按照本教程的要求,对我进行了一些修改:http://manuelvanrijn.nl/blog/2012/11/13/sidekiq-on-heroku-with-redistogo-nano/
简而言之,我将配置移动到sidekiq.rb初始化程序中,并删除了所有的url和命名空间信息。
require 'sidekiq'
Sidekiq.configure_client do |config|
config.redis = { :size => 1 }
end
Sidekiq.configure_server do |config|
config.redis = { :size => 4 }
end我引用的教程链接有一个方便的计算器来确定正确的大小值。但仍不确定这是让我感到震惊的原因,还是Mark的回答中提到的名称空间冲突的某个版本。
另外,我没有使用教程中的sidekiq.yml部分,因为sidekiq.yml说新版本的rails不喜欢它。相反,我在Procfile的bundle exec命令中将并发设置为2,如下所示:
worker: bundle exec sidekiq -c 2 希望这对将来有类似问题的人有帮助!感谢所有想帮忙的人。
发布于 2015-03-20 13:30:49
只是在这里添加我的两分钱:在我的例子中,我忘记将队列的名称添加到config/ name kiq.yml =]
发布于 2014-10-08 20:21:36
您也需要将服务器配置为使用相同的命名空间。
https://stackoverflow.com/questions/26263024
复制相似问题