2011-08-10 55 views
1

我禁用了redis偵聽端口6379並啓用了websocket。它從我的應用程序奇妙地工作,但是當我啓動resque-web時,它一直在監聽網絡接口並失敗並顯示消息:是否可以啓動resque-web偵聽redis套接字?

無法連接到Redis! (redis://127.0.0.1:6379/0)

有人知道是否有可能使resque-web使用套接字而不是網絡?

在此先感謝

回答

2

我一直在閱讀resque-web的代碼我意識到它會在內部加載您提供的任何路徑作爲該命令的參數。所以,我創建了連接與Redis的寶石Redis的純Ruby腳本,然後分配此實例Resque.redis:

就創建了一個名爲「resque-網絡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 

這只是一個黑客,但它現在對我的作品......

+0

它必須是絕對路徑。 –

1

我只是固定的同樣的問題:)所以這裏是解決

在我./config/resque.yml我這行

development: /tmp/redis.sock 

這是我的RAILS_ROOT/config/initializers/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 
+0

我有一個初始化的是做這樣的事情,但對我來說只是解決了連接與redis工作者。無論如何,我已經寫了一個解決這個問題的臨時解決方案,爲我工作。無論如何感謝您的回答:-) –