2

Rails で resque ジョブをプッシュするコードがあります。

そのジョブ クラスで、私が唯一のことは

Resque.logger.info("Hello");

Resque ワーカーを起動し、ジョブ コード ファイルに変更を加えた後、次のようにします。

Resque.logger.info("Can I see this?");

Resque ロガーに反映された変更を確認できません。ワーカーを再起動しない限り、「Hello」と表示されます。ジョブ ファイルを変更するたびに resque worker を再起動するのを避ける方法はありますか? 要するに、コードを動的に変更できるようにして、おそらくより高速なコマンドを実行して、次のジョブが処理されるように変更を反映させたいと考えています。

私も飼ってます

config.cache_classes = false

私のすべての環境設定ファイルで。

4

1 に答える 1

0

避けられないと思います。ただし、多くのワーカーがある場合は、 を使用foremanして 1 つのコマンドでそれらを開始することで、より簡単にすることができます。

foreman を使用すると、アプリケーションの実行に必要なさまざまなプロセスを宣言できます。

まず、職長をインストールします。gem install foreman

次に、Procfile(拡張子なし) という名前のファイルを作成します。

あなたのProcfile

worker-name1: bundle exec rake resque:work QUEUE=*
worker-name2: bundle exec rake resque:work QUEUE=*..

開始するには、次の行を入力します。foreman start

次のような出力が表示されます。

17:21:48 worker-name1.1 | started with pid 20571
17:21:48 worker-name2.1 | started with pid 20573

https://github.com/ddollar/foreman

http://blog.daviddollar.org/2011/05/06/introducing-foreman.html

于 2013-09-16T14:48:50.217 に答える