2

Resqueスケジューラーにある新しいcronジョブをテストするために開発サーバーを起動するときにワーカーを起動したいので、開発サーバーの起動時にこのコマンドを実行します-

QUEUE=* rake environment resque:work rails s

以前はうまくいきましたが、ドキュメントを正しく読んでいれば、まだうまくいくはずです。

しかし、ハングアップした後に中断すると、次のエラーが発生します-

^Crake aborted!
Don't know how to build task 'rails'

キーボード割り込みと実行後に得られるものは次のとおりです--trace

** Invoke environment (first_time)
** Execute environment
** Invoke resque:work (first_time)
** Invoke resque:preload (first_time)
** Invoke resque:setup (first_time)
** Invoke environment
** Execute resque:setup
** Execute resque:preload
** Invoke resque:setup
** Execute resque:work
^Crake aborted!
Don't know how to build task 'rails'

エラーが発生する理由と、以前にロードして機能していたのに機能しなかった理由がわかりません。ここで何が欠けていますか?

4

2 に答える 2

5

いつかこのコマンドを正常に実行できますか?

QUEUE=* rake environment resque:work rails s

私が知っている方法rails sは、rakeタスクではなくrailsコマンドのリストであるためです

次のようにスペースを区切って連続したレーキを実行できます

QUEUE=* rake environment rake1 rake2 rake3

ただし、上記の方法でrakeとrailsコマンドを実行することはできません

上記のトレースからわかることは、rake( resque rake ) が現在実行されていることであり、指定した 2 番目の rake を渡す代わりに、サーバー rake を開始するためにrails コマンドを指定したのは、それを rake タスクと見なしていることです (これは真実ではありません)。

私はあなたがこれを探していると信じています

QUEUE=* rake environment resque:work && rails s

しかし、あなたが言及したことがうまくいくとは思いません。ここで何か矛盾する場合はお知らせください

それが理にかなっていることを願っています

于 2013-04-01T13:30:21.900 に答える