Можно ли запустить resque-web при прослушивании сокета redis? - PullRequest
1 голос
/ 10 августа 2011

Я отключил повторное прослушивание порта 6379 и включил веб-сокет. Он прекрасно работает с моим приложением, но когда я запускаю resque-web, он продолжает слушать через сетевой интерфейс и выдает сообщение:

Не удается подключиться к Redis! (Redis: //127.0.0.1: 6379/0)

Кто-то знает, можно ли заставить resque-web использовать сокет вместо сети?

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 13 сентября 2011

Я читал код resque-web и понял, что он внутренне загружает любой путь, который вы указываете в качестве параметра для команды.Поэтому я создал простой скрипт ruby, который подключается к Redis с помощью redis gem, а затем назначает этот экземпляр Resque.redis:

Просто создал файл с именем 'resque-web-hack.rb':

require 'redis'
require 'resque'
$redis = Redis.new(:path => '/tmp/redis.sock')
Resque.redis = $redis

А потом использовал это так:

$ resque-web /path/to/my/file/resque-web-hack.rb

Это просто взлом, но у меня уже работает ...

1 голос
/ 24 августа 2011

Я только что исправил ту же проблему :) Так вот решение

В моем ./config/resque.yml У меня есть эта строка

development: /tmp/redis.sock

Это мой RAILS_ROOT / config /инициализаторы / resque.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')
if resque_config[rails_env] =~ /^\// # using unix socket
    Resque.redis = Redis.new(:path => resque_config[rails_env])
else 
   Resque.redis = resque_config[rails_env]
end
...