Resque не получает настройки конфигурации Redis

У меня возникли неожиданные и серьезные проблемы при попытке заставить приложение Rails, работающее под управлением Unicorn, подключиться к защищенному паролем серверу Redis.

Используя bundle exec rails c productionв командной строке, я могу выполнять команды через Resque.redis. Однако похоже, что моя конфигурация теряется при разветвлении под Unicorn.

Использование незащищенного паролем сервера Redis Just Works. Однако я намерен запускать воркеры на других серверах, а не на сервере Redis, поэтому мне нужно, чтобы он был защищен паролем.

Мне также удалось использовать защищенный паролем (используя тот же метод), но используя Passenger, а не Unicorn.

У меня следующие настройки:

# config/resque.yml

development: localhost:6379
test: localhost:6379
production: redis://user:PASSWORD@oak.isc.org:6379

.

# config/initializers/redis.rb

rails_root = ENV['RAILS_ROOT'] || File.dirname(__FILE__) + '/../..'
rails_env = ENV['RAILS_ENV'] || 'development'

$resque_config = YAML.load_file(rails_root + '/config/resque.yml')
uri = URI.parse($resque_config[rails_env])
Resque.redis = Redis.new(host: uri.host, port: uri.port, password: uri.password)

.

# unicorn.rb bootup file

preload_app true

before_fork do |server, worker|
  Redis.current.quit
end

after_fork do |server, worker|
  Redis.current.quit
end

.

6
задан Seamus Abshere 8 June 2012 в 14:49
поделиться