2016-05-17 4 views
0

バックグラウンドジョブにResqueを使用するRailsアプリがあります。これは、ローカルで正常に動作しますが、Herokuのにデプロイした後、私は、接続エラーを取得:HerokuのRedis接続エラー

Redis::CannotConnectError (Error connecting to Redis on localhost:6379 (Errno::ECONNREFUSED)): 

私はそれが正しいされていない、localhostに接続しようと参照してください。私はHeroku Redis :: Redisアドインを使用しており、redis gemを追加しました。 initializers.redis.rbがどのように見えるかです:

$redis = Redis.new(url: ENV["REDIS_URL"]) 

そして、これは私のProcfileです:configに

web: bundle exec puma -C config/puma.rb 
resque: env TERM_CHILD=1 bundle exec rake resque:work QUEUE=* COUNT=1 

REDIS_URLが追加されvarsは。ここで何がうまくいかないのですか?

答えて

0

HerokuでPumaやUnicornを使用している場合は、ブートプロセスにも追加する必要があるようです。私はプーマを使用していますので、私はconfig/puma.rbにこれを追加:ここで

on_worker_boot do 
    # ... 
    if defined?(Resque) 
    Resque.redis = ENV["REDIS_URL"] || "redis://127.0.0.1:6379" 
    end 
end 

はプーマとユニコーンの両方のためのより詳細な説明です: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server https://devcenter.heroku.com/articles/rails-unicorn#caveats

関連する問題