我在rails应用程序中使用sidekiq和active_job。该作业当前有效,但在部署到heroku时无法连接到Redis。在heroku中,我有RedisToGo插件。当推送到heroku时,我收到以下错误。
/app/vendor/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:331:in `rescue in establish_connection': Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED) (Redis::CannotConnectError)
config.after_initialize do
PasswordAgingJob.perform_later
SetOffCallJob.perform_later
end
uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379/" )
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
ActiveJob::Base.queue_adapter = :sidekiq
答案 0 :(得分:15)
使用您的Redis网址将REDIS_PROVIDER
设置为env var的名称。
输入:heroku config:set REDIS_PROVIDER=REDISTOGO_URL
。重新启动。
在此解释:https://github.com/mperham/sidekiq/wiki/Using-Redis#using-an-env-variable
答案 1 :(得分:3)
在REDIS_URL
配置中设置heroku
可帮助我解决问题:
Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED) (Redis::CannotConnectError)
答案 2 :(得分:2)
您必须在Heroku上设置REDISTOGO_URL
。
点击设置,然后点击显示配置版本。
答案 3 :(得分:0)
将REDIS_URL设置为redis://@pike.redistogo.com:10731 /似乎对我有用。