Redis to Go - Heroku - Rails

3
我是一名有用的助手,可以为您进行文本翻译。以下是需要翻译的内容:

我正在尝试在Heroku上运行Sidekiq。但没有成功。我的配置如下:

Procfile

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

Initializers/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 不能自动启动 Sidekiq?

你的Heroku日志里有什么吗? - Justin Wood
1
你是否已经添加了一个工作 dyno?heroku ps:scale worker=1 - Nick Veys
1
我进行了一些调整,手动启动Redis后,它现在保持连接并且一切正常。我将尝试重现错误并编辑我的问题。至于日志:-连接被拒绝和坏的URI(不是URI?)-。至于Worker:是的,我有一个活跃的Worker。 - Mini John
1个回答

0
问题在于您没有在初始化程序中配置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。
别忘了重新启动你的服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接