ほとんどのJenkinsの例では、SCMポーリング値は*/15 * * **で指定されています。 15分ごとにSCMをポーリングします。数百のジョブがある場合は問題ありませんが、数千のジョブがある場合は、15、30、45、および0分にSCM(この場合はSubversion)サーバーに数千の要求が発生するため問題ありません。
上記のシナリオを回避するために、Jenkinsのポーリング値をランダム化する方法はありますか?
Jenkinsマスター構成画面には、「同時ポーリングの最大数」という値があります。上記のシナリオを回避するには、これを(そしてどの値に)設定する必要がありますか?
*の代わりにHを使用すると、Jenkinsがランダムにポーリングを分散します。現在のところ、1時間/日などに1回とは異なる頻度で適切な構文が見つからないことに注意してください。
H * * * *
事前に決められたランダムな分に1時間に1回ポーリングします。
H H * * *
事前に決められたランダムな時間と分に1日1回ポーリングします
H H H * *
週に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
Jenkins 1.510以降には 新しい構文 が含まれており、1時間以内に分布を指定できます
同時ポーリングの最大数を1から3の間の値に設定すると、ポーリング要求は単にキューに入れられ、シリアルに(または最大で3つ並列に)処理されます。
SVNのポーリングに関係するすべてが効果的に行われていることを考えると
svn info branch-url
それらはすべてすぐに完了するはずですが、少なくとも並列リクエストは制限されています。
@Stephen Connollyのソリューションは、おそらくこれに適したソリューションです。
本当に心配するジョブが何千もある場合は、ジョブ名の一部に基づいてタイミングを設定することを検討してください(ジョブ名が合理的に分散されていると想定)。
たとえば、ジョブが「B」で始まる場合は、タイミングを*/2に設定します。 'C'で始まる場合は、*/3などに設定します(ただし、 'A'には1以外のものが必要です)。
これは素晴らしい解決策ではありませんが、実際に多くのジョブの管理を検討している場合は、より良い解決策が見つかるまで回避策になる可能性があります。
H H H * *
上記は週に1回ではなく月に1回ポーリングすると思います