2

Rails 4.2 には、バックグラウンド ジョブの共通インターフェイスとして Active Job が付属しています。しかし、ドキュメントでワーカーを開始する方法が見つかりません。ドキュメントはまだ未熟なようです (たとえば、Sneakers の適切なバージョンは Rails でのみ参照されていますGemfile)。そのため、「実行中のワーカー」の部分が Active Job に含まれていないのか、ドキュメントに記載されていないだけなのかわかりません。

sidekiqアクティブ ジョブの場合、または私の場合のようにジョブ ウォッチャー スレッドを手動で開始する必要がありrake sneakers:runますか? rails serverもしそうなら、開発環境でこれらの並列タスクを自動的に実行するには、これらのコマンドをどこに配置すればよいですか?

4

2 に答える 2

7

ActiveJob は単なる共通インターフェースです。バックエンド gem は引き続き必要であり、サーバーとは別に起動する必要があります (これは別のプロセスであり、これが目的です)。

resque を使用したサンプル:

Gemfile で:

gem 'resque'

ターミナルで、ワーカーを起動します。

bin/resque work

サイドキック、遅延ジョブなどを使用する場合も同様です。

サーバーとワーカーを 1 つのコマンドで起動したい場合は、短い bash スクリプトを作成できますが、そうしないことをお勧めします。 )。

より良い解決策は、foreman gem を使用してプロセスの開始と停止を管理することです。

開始するプロセスを含む単純な Procfile を作成できます。

web: bundle exec rails s
job: bundle exec resque work

そして、フォアマンを使用して両方を開始します。

foreman start

デフォルトでは、フォアマンはプロセスのログをコンソールにインターリーブしますが、これは構成できます。

于 2014-08-27T09:52:52.683 に答える
1

ジョブ スレッド ウォッチャーを実行する必要があります。

于 2014-08-27T07:48:12.827 に答える