2016-05-17 24 views
0

Ich habe eine Rails App, die Resque für Hintergrundjobs verwendet. Dies funktioniert vor Ort in Ordnung, aber nach der Heroku Bereitstellung ich einen Verbindungsfehler:Redis Verbindungsfehler auf Heroku

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

Ich sehe es versucht zu localhost zu verbinden, was nicht korrekt ist. Ich verwende das Heroku Redis :: Redis Add-In und ich habe das redis Juwel hinzugefügt. Dies ist, wie initializers.redis.rb wie folgt aussieht:

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

Und das ist mein Procfile:

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

In der Config Vars REDIS_URL hinzugefügt wird. Was läuft hier falsch?

Antwort

0

Es scheint, dass wenn Sie Puma oder Unicorn auf Heroku verwenden, müssen Sie es auch zum Startvorgang hinzufügen. Ich bin Puma verwenden, so habe ich dies zu config/puma.rb:

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

Hier ist eine ausführlichere Erklärung sowohl für Puma und Einhorn: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server https://devcenter.heroku.com/articles/rails-unicorn#caveats

Verwandte Themen