16

ほとんどの Jenkins の例では、SCM ポーリング値は */15 * * * * と指定されています。15 分ごとに SCM をポーリングします。数百のジョブがある場合は問題ありませんが、数千のジョブがある場合は、15、30、45、および 0 分後に SCM (この場合は Subversion) サーバーへの数千の要求が発生するため、そうではありません。

上記のシナリオを回避するために、Jenkins でポーリング値をランダム化する方法はありますか?

Jenkins マスター構成画面には、「同時ポーリングの最大数」という値があります。上記のシナリオを回避するには、これを設定する必要がありますか (およびどのような値に設定しますか?)

4

4 に答える 4

29

*の代わりにHを使用すると、Jenkinsがランダムにポーリングを分散します。現在のところ、1時間/日/日などに1回とは異なる頻度に対して適切な構文が見つからないことに注意してください。

H * * * *

事前に決定されたランダムな分に1時間に1回ポーリングします。

HH * * *

事前に決定されたランダムな時間と分に1日1回ポーリングします

HHH * *

週に1回ポーリングします

0 H * * *

時間にポーリングしますが、1日1回、事前に決定されたランダムな時間にポーリングします。

複数のcron行が許可されており、いずれも一致することに注意してください。したがって、1時間未満の頻度の適切な構文が確定するまで、次のようなもので(平均して)近づくことができます。

H * * * *
H * * * *
H * * * *
H * * * *
H * * * *
H * * * *

ポーリングの間隔は平均15分です(はい、1時間に6回のポーリングがありますが、15分ごとに少なくとも1回のポーリングが行われる可能性が高くなります)

1時間以内に配布する構文について適切な提案がある場合は、次のスレッドに返信してください。

https://groups.google.com/forum/?fromgroups#!jenkinsci-users/VghEjfygWuw/PuIG1o7u1GQJ%5B1-25%5D

更新(2013年4月)

Jenkins 1.510以降には、1時間以内に分布を指定できる新しい構文が含まれています

于 2012-08-10T08:39:50.627 に答える
2

同時ポーリングの最大数を 1 から 3 の間の値に設定すると、ポーリング リクエストは単純にキューに入れられ、順次 (または最大で 3 つまで) 処理されます。

SVN のポーリングに関係するすべてのことが効果的に行われることを考えると、

svn 情報ブランチ URL

それらはすべてすぐに完了するはずですが、少なくとも並列リクエストは制限されます。

于 2012-08-10T06:42:07.430 に答える
1

@Stephen Connollyのソリューションは、おそらくこれに適したソリューションです。

本当に何千ものジョブがある場合は、ジョブ名の一部に基づいてタイミングを設定することを検討してください (ジョブ名が適切に分散されていると仮定します)。

たとえば、ジョブが「B」で始まる場合、タイミングを */2 に設定します。'C' で始まる場合は、*/3 などに設定します ('A' には 1 以外の値が必要です)。

これは素晴らしい解決策ではありませんが、本当に多くのジョブを管理することを検討している場合は、より良い解決策が見つかるまで回避策になる可能性があります。

于 2012-08-11T02:16:55.330 に答える
0

HHH * *

上記は週に1回ではなく月に1回ポーリングされると思います

于 2015-07-28T08:16:39.363 に答える