Delayed :: Job(または私の問題に対してより適切なジョブキュー)を使用して、複数のバックグラウンドデーモンにジョブをディスパッチしたいと思います。
さまざまな責任を実行するバックグラウンドデーモンがいくつかあります。それぞれが、Railsアプリからのキュー内のさまざまなジョブに関心を持っています。これはDelayed::Jobを使用して可能ですか、それともこのタスクにより適した別のジョブキューがありますか?
Delayed :: Job(または私の問題に対してより適切なジョブキュー)を使用して、複数のバックグラウンドデーモンにジョブをディスパッチしたいと思います。
さまざまな責任を実行するバックグラウンドデーモンがいくつかあります。それぞれが、Railsアプリからのキュー内のさまざまなジョブに関心を持っています。これはDelayed::Jobを使用して可能ですか、それともこのタスクにより適した別のジョブキューがありますか?
それ以来、 http: //github.com/collectiveidea/delayed_jobは v3.0 に達し、名前付きキューが含まれています! 単純なグループ化されたキューのニーズに最適です。
遅延ジョブが気に入った場合は、キューごとに 1 つずつ、複数のテーブルを簡単に作成できます。
ワーカーはテーブル名を取得します
class Job < ActiveRecord::Base
MAX_ATTEMPTS = 25
MAX_RUN_TIME = 4.hours
set_table_name :delayed_jobs
したがって、それを編集して、テーブルごとに 1 つの移行を作成できます。そして、ジョブを開始するときに、キューごとに 1 つのワーカーを開始します。
Resqueは、複数のキューをサポートするジョブキューライブラリです。
答えはここにあります:
各ジョブに一意の ID を設定するには、delayed_job で (複数のワーカーを生成するために使用される -n オプションではなく) -i オプションを使用します。
DJワーカーは、キューから最初のジョブ(1つだけ)を取得して実行します。各労働者は他の労働者と同じです。複数のワーカーを実行できますが、それらはすべて同じキューから機能します。