2012-09-20 162 views
1

我開始與工人:Resque worker可以在沒有運行redis副本的情況下運行嗎?

rake environment resque:work RAILS_ENV=development VVERBOSE=1 QUEUE=* LOGFILE=/Users/matteo/workspace/APP/log/resque.log --trace 

我得到的輸出:

** Invoke environment (first_time) 
** Execute environment 
** Invoke resque:work (first_time) 
** Invoke resque:preload (first_time) 
** Invoke resque:setup (first_time) 
** Execute resque:setup 
** Execute resque:preload 
** Invoke resque:setup 
** Execute resque:work 

快速PS告訴我,這個過程是啓動和運行。

現在我沒有運行Redis的實例。快速ps auxwwww | grep redis-server證實了這一點。

工人不應該失敗嗎?

我下載了resque代碼,把一個斷點到resque代碼worker.rb:

(rdb:1) eval redis 
#<Redis::Namespace:0x007f868cb57880 @namespace=:resque, @redis=#<Redis client v2.2.2 connected to redis://127.0.0.1:6379/1 (Redis v0.07)>> 

這怎麼可能什麼都不是,端口上運行? 感謝您的任何幫助

回答

2

的答案是:「不,工人不能沒有運行Redis的副本運行」。

問題是由fakeredis寶石造成的。儘管開發環境中沒有包含gem,但開發人員因此需要「redis/connction/memory」來使用fakeredis實例。

1

Resque define需要redis的工作,雖然它可能會顯示您的隊列已啓動,它將無法處理沒有redis。

可以通過引導你的服務器後,將這個網址查看隊列的狀態...

也就是說,如果你在你的Gemfile以下

gem 'resque', :require => "resque/server" 

OR如果您沒有該設置,請在控制檯resque-web中運行以獲取可訪問的管理界面:localhost:3000/overview

如果您未獲得一個錯誤,並且可以在沒有redis錯誤的情況下訪問該頁面,redis必須在某處運行,或許作爲啓動時的服務?

對於基本的Redis/resque設置在這裏看到的 - http://railscasts.com/episodes/271-resque?view=asciicast

相關問題