8

resque を正しくインストールしましたが、実行する必要があるすべてのキューを処理するには

rake resque:work QUEUE='*'

問題は、ターミナル ウィンドウを開いたままにしておく必要があることです。そうしないと、resque:work が機能しません。

「rails server」を実行するたびにそのrakeコマンドを自動実行する方法を知っていますか?

私はローカルホストにいます

lib/タスク/resque.rake

require 'resque/tasks'

task "resque:setup" => :environment do
    ENV['QUEUE'] = "*"
end
4

3 に答える 3

11

invoke 関数を呼び出す代わりに、他のすべてのタスクを呼び出すことができるforemanのような gem を使用できます。これは、大部分がプラットフォームに依存しないソリューションを探している場合や、クラウドにデプロイする場合に役立ちます。Profile には次の内容を含めることができます。

web:    bundle exec thin start -p $PORT
worker: bundle exec rake resque:work QUEUE=*
clock:  bundle exec rake resque:scheduler

出典:フォアマンの紹介

サーバーを起動するには、子スレッドをフォークして個々の作業を実行する foreman start コマンドを発行するだけです。

于 2013-08-16T09:51:22.330 に答える
2

編集:2012年からの回答!これはRails 2でのみ機能するようです!

次のようなもので config/initializers に初期化子を追加します。

Rake::Task["resque:work QUEUE='*'"].invoke

未検証!

于 2012-11-10T23:21:30.017 に答える
0

それを行う最良の方法は

ENV['QUEUE'] = "*"
Rake::Task["resque:work"].invoke
于 2013-08-08T18:17:41.790 に答える