Redis
 sql >> база данни >  >> NoSQL >> Redis

Redis се опитва да се свърже с локален хост на Heroku вместо REDIS_URL

Сещам се за две възможности:

  • Нещо задава ли ENV['REDIS_URL'] преди да стартира инициализаторът? Например може би имате .env файл, проверен в git, който отменя променливата Heroku?

  • Казвате, че този код е от redis.rb . Имате ли config/initializers/resque.rb също? Какво ще кажете за config/resque.yml ? Всеки от тях може да е също опитвайки се да отворите Redis връзка. (Ако бихте могли да публикувате цялата трасировка на стека на вашата грешка, бихте могли да потвърдите това или да я изключите.) Или използвате Redis за нещо различно от Resque?

Можете също така да извършите отстраняване на грешки в printf и да промените инициализатора си, за да каже:

if Rails.env.production?
  puts "production: #{ENV['REDIS_URL']}"
  uri = URI.parse(ENV["REDIS_URL"])
else
  puts "not production"
  uri = URI.parse("redis://localhost:6379")
end

Това трябва да ви помогне да изясните какво се случва. (Може да се наложи да използвате Rails.logger.info вместо puts .)

РЕДАКТИРАНЕ: Това проследяване на стека е много полезно! Разбира се, вашият собствен инициализатор изобщо не е там, но има друг код, който се опитва да зареди своя собствена redis връзка, тук:

remote:        /tmp/build_329306a238b046dda86a54d29db48f4c/vendor/bundle/ruby/2.4.0/gems/resque-web-0.0.9/config/initializers/resque_config.rb:4:in `<top (required)>'

Ако погледнете този скъпоценен камък, можете да видите, че прави това:

require 'resque'

config = ENV.fetch("RAILS_RESQUE_REDIS", "127.0.0.1:6379")
Resque.redis = config

Така че мисля, че отговорът е да зададете RAILS_RESQUE_REDIS в допълнение към REDIS_URL . Можете да използвате Heroku config:set команда за това.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. redis slave няма да се синхронизира с master

  2. Използване на ServiceStack.Redis.Sentinel

  3. Как да настроя/получа pandas.DataFrame към/от Redis?

  4. Unicode в python

  5. Не можа да се зареди файл или сглобка System.Runtime.CompilerServices.Unsafe