在更新我的宝石并将所有内容投入生产后,我在Heroku上启动sidekiq时遇到了很大的问题。问题是Sidekiq尝试在本地连接和端口上连接到Redis,而不是使用REDISTOGO变量。花了几个小时后,我设法解决了这个问题:在下面回答。
答案 0 :(得分:25)
从if及以下删除所有内容并运行:
heroku config:set REDIS_PROVIDER=REDISTOGO_URL
Sidekiq会自动使用它。
答案 1 :(得分:3)
我查找了RedisToGo提供的正确的新连接,然后将其插入到变量中。 SO上的一些帖子声称这不是必要的,但似乎是。
我在初始化程序中的sidekiq.rb文件现在看起来像这样,一切正常。
require 'sidekiq/web'
Sidekiq.configure_server do |config|
ActiveRecord::Base.configurations[Rails.env.to_s]['pool'] = 30
end
if Rails.env.production?
Sidekiq.configure_server do |config|
config.redis = { url: ENV["REDISTOGO_URL"]}
end
Sidekiq.configure_client do |config|
config.redis = { url: ENV["REDISTOGO_URL"]}
end
end
答案 2 :(得分:0)
不是答案 - 但想要为此帖添加SEO,以便其他人可以找到这个。 这也是heroku将抛出错误的问题的答案:
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
这个问题在许多SO问题上都没有得到解答(example),并且每个人都说数据库配置不正确,但情况并非如此。
我试图让hourrrrsss弄清楚问题,这就是解决方案!非常感谢你 - 我希望我能不止一次地回答你的答案!!