【问题标题】:Redis to Go - Heroku - RailsRedis to Go - Heroku - Rails
【发布时间】:2014-10-16 12:20:45
【问题描述】:

我正在尝试让Sidekiq 在 Heroku 中播放。没有运气..我的配置看起来像这样:

过程文件

web: bundle exec passenger start -p $PORT --max-pool-size 5
worker: bundle exec sidekiq

初始化程序/redis.rb

uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379/")
REDIS = Redis.new(:url => ENV['REDISTOGO_URL'])

但是当我执行heroku ps 时,只显示 Web 实例。不是 Sidekiq。

但是我可以手动运行heroku run sidekiq 并运行我的工人。我错过了什么,以至于 Heroku 不能自己启动它?

【问题讨论】:

  • 您的 Heroku 日志中是否有任何内容?
  • 你添加了一个工人测功机吗? heroku ps:scale worker=1
  • 我进行了调整,并在 Redis 现在保持连接并且一切正常后手动启动它。将尝试重现错误并编辑我的问题。至于日志:-连接被拒绝和错误的URI(不是URI?)-。至于工人:是的,我有一个活跃的工人。

标签: ruby-on-rails ruby heroku redis sidekiq


【解决方案1】:

问题是您没有在初始化程序中配置 Sidekiq,以便 Sidekiq 确切知道如何连接到 redis。创建 Initializers/sidekiq.rb 并添加以下代码

Sidekiq.configure_server do |config|
  config.redis = { :url => ENV["REDISTOGO_URL"] }
end

你也可以删除

uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379/")

您不需要它,因为您使用的是环境中的 redis url。
不要忘记重新启动服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-17
    • 2011-11-15
    • 2011-06-22
    • 2012-10-21
    • 2015-06-05
    • 2014-01-21
    • 2013-10-14
    • 2011-11-22
    相关资源
    最近更新 更多