iveはresqueをherokuと連携させようとしています。開発モードで正常に動作させることができますが、herokuにプッシュしようとすると
Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379):
次に、 http://blog.redistogo.com/2010/07/26/resque-with-redis-to-go/を読んでフォローしました
サイトにリストされている構成を配置しましたが、次のエラーが発生しました
SocketError (getaddrinfo: nodename nor servname provided, or not known):
私はinitializers/resque.rbを入れました
Resque.after_fork = Proc.new { ActiveRecord::Base.establish_connection }
ENV["redis://redistogo:11111111111111111@lab.redistogo.com:9254/"] ||= "redis://heroku_username:heroku_password@host:9254/"
uri = URI.parse(ENV["redis://redistogo:1111111111111111@lab.redistogo.com:9254/"])
Resque.redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
ただし、上記のエラーがスローされます。現在の開発モードでは、エラーも発生します。
herokuユーザー名(herokuからのアドオンを使用)を使用し、パスワードをherokuに設定し、ポートを9254に変更しようとしましたが、ソケットエラーが発生し続けます。私は何が間違っているのですか?
助けていただければ幸いです。ありがとうございました
アップデート。
@kevin
私は試した
uri = URI.parse(ENV["my_url_string"] || "redis://localhost:9254/" )
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
initializer / redis.rbでも同様ですが、次のエラーが発生します
Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379):
エラーの数値、つまり127.0.0.1:6379は重要ですか?iveは私のredisguiアプリをチェックし、herokuconfigから私のポート番号が9254であることを確認しました
REDISTOGO_URL => redis://redistogo:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@lab.redistogo.com:9254/
他の構成設定はありましたか?助けてくれてありがとう!
最終更新。
それを私が直した。信じられない!私の完全な解決策は
uri = URI.parse(ENV["REDISTOGO_URL"])
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
Resque.redis = REDIS
逐語的に。明示的にURLを設定しなくても機能します。これは、herokuがすでにURLを設定しようとしているためです。