首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Heroku上排队的Sidekiq作业

在Heroku上排队的Sidekiq作业
EN

Stack Overflow用户
提问于 2014-10-08 17:37:12
回答 3查看 4.5K关注 0票数 7

我有一个Sidekiq工作人员在本地运行良好,但是当部署到Heroku时,作业就被卡在队列中了。我正在使用Redis to go nano,并让它启动和运行,我已经在Heroku上将工作人员缩放到1,并且可以看到它已经启动了。我只是在使用默认的队列--没有什么定制的或花哨的。这是我的代码:

config/unicorn.rb:

代码语言:javascript
复制
Sidekiq.configure_client do |config|
  config.redis = { size: 1, namespace: 'sidekiq' }
end

配置/初始化器/redis.rb

代码语言:javascript
复制
uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379")
REDIS = Redis.new(:url => ENV['REDISTOGO_URL'])

Procfile

代码语言:javascript
复制
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: bundle exec sidekiq -c 5 -v -q default

我可以在队列中看到作业,但它不是本地处理的。任何建议都是非常感谢的-谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-10 15:38:03

不清楚到底是什么问题,但按照本教程的要求,对我进行了一些修改:http://manuelvanrijn.nl/blog/2012/11/13/sidekiq-on-heroku-with-redistogo-nano/

简而言之,我将配置移动到sidekiq.rb初始化程序中,并删除了所有的url和命名空间信息。

代码语言:javascript
复制
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,如下所示:

代码语言:javascript
复制
worker: bundle exec sidekiq -c 2  

希望这对将来有类似问题的人有帮助!感谢所有想帮忙的人。

票数 6
EN

Stack Overflow用户

发布于 2015-03-20 13:30:49

只是在这里添加我的两分钱:在我的例子中,我忘记将队列的名称添加到config/ name kiq.yml =]

票数 1
EN

Stack Overflow用户

发布于 2014-10-08 20:21:36

您也需要将服务器配置为使用相同的命名空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26263024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档