2

要するに

1 つのジョブ リクエストを1 つのスレーブだけに分散して実行する方法。他のスレーブがアイドル状態の場合、次のジョブ リクエストはキューに入れられません。

詳細

エントリーとしてJenkinsジョブを利用するサービスがあり、ユーザーは をクリックしてリクエストを送信できますBuild Job。一度に 1 つのスレーブで実行できるジョブは 1 つだけです。

スループットを向上させるために、このジョブを実行するスレーブを追加します。ただし、次の問題が見つかりました。

  1. マルチ構成ジョブを使用すると、同じジョブがすべてのスレーブで生成されますが、1 つのスレーブだけがジョブ (1 つの要求) を実行するようにしたいので、他のスレーブは他のジョブ (要求) を実行できます。

  2. NodeLable プラグインを使用しますが、1 つのジョブが実行されている場合、他のスレーブがアイドル状態であっても、後続のジョブがキューに入れられます。

エントリ ジョブはダウンストリーム ジョブをトリガーするため、要求を処理するスレーブは変更されないため、以前のすべてのダウンストリーム ジョブが完了する前に、同じスレーブで別のエントリ ジョブがトリガーされる可能性があります。

エントリ ジョブがランダムなスレーブを選択してジョブを実行し、1 人のユーザーの要求を満たす方法はありますか。次に、別のスレーブ (アイドル状態の場合) を選択して別のジョブを実行し、別のユーザーの要求に応えます。すべてのスレーブがビジーの場合、来るリクエストはキューに入れられ、スレーブが再びアイドル状態になるまで待機します。

ありがとう!

私が選んだもの

この問題は、異なるジョブが相互に依存し、状態を共有している場合に発生します。したがって、将来の不満を避けるために、すべての依存ジョブを 1 つにマージします。したがって、共有状態はなくなり、問題はなくなりました。

4

3 に答える 3

0

Parameterized Trigger Pluginを使用すると、あるジョブが別のジョブをトリガーし、それ自体の実行と同じスレーブで強制的に実行できます。

于 2015-10-27T17:11:41.310 に答える