1

BJ でジョブを設定し、特定の「タイプ」の 2 つが同時に実行されないようにする方法はありますか?

私たちは 24 のユニコーンを実行しており、それらのそれぞれに対して BJ を起動できます。バックグラウンド タスクをノックアウトする複数のジョブ ハンドラーが好きなので、これは大したことではありません。例外はデータのインポートです。これらを一度に複数実行しないように指示できるようにしたいと考えています。

これはBJで可能ですか、それともresqueのようなものに移行する必要がありますか?

4

1 に答える 1

1

これを行う 1 つの方法は、データ インポート ジョブを特定の優先度レベルに制限し、1 つの遅延ジョブのみがその優先度のジョブを取得するようにすることです。たとえば、他のすべてのジョブを優先度 0 から 99 で実行し、データ インポート ジョブを優先度 100 で実行する場合、すべての遅延ジョブ ワーカーを min_priority 0 から max_priority 99 で実行できます。そして、1 つの遅延ジョブ ワーカーを min_priority 100 から max_priority 100 まで実行して、1 つのワーカーだけがそれらのジョブを実行するようにします。これにより、2 つのデータ インポート ジョブ (優先度 100) が同時に実行されることがなくなります。

于 2011-02-10T06:23:57.680 に答える