1

私は次のように労働者を始めます:

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コードをダウンロードし、worker.rbのresqueコードにブレークポイントを設定しました。

(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)>>

そのポートで何も実行されていない可能性はありますか?助けてくれてありがとう

4

2 に答える 2

2

答えは、「いいえ、Redis のコピーが実行されていないとワーカーは実行できません」です。

この問題は、fakeredis gem が原因でした。gem は開発環境に含まれていませんでしたが、開発者は「redis/connction/memory」を必要としていたため、fakeredis インスタンスを使用していました。

于 2012-09-27T22:07:44.157 に答える
1

Resque を実行するには redis が必要です。キューがアップしているように見えても、redis なしでは処理に失敗します。

サーバーの起動後にこの URL にアクセスすると、キューのステータスを表示できます...

http://localhost:3000/resque/overview

つまり、gemfile に次のものが含まれている場合です。

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

または、そのセットアップがない場合は、コンソールでこれを実行してresque-web、管理インターフェイスにアクセスできるようにしますlocalhost:3000/overview

エラーが発生せず、redis エラーなしでそのページにアクセスできる場合、redis はどこかで、おそらく起動時のサービスとして実行されているに違いありません。

基本的な redis/resque のセットアップについては、こちらを参照してください - http://railscasts.com/episodes/271-resque?view=asciicast

于 2012-09-27T21:07:39.133 に答える