Могу ли я сделать интервал опроса SCM для рандомизированного Дженкинса - программирование

Могу ли я сделать интервал опроса SCM для рандомизированного Дженкинса

В большинстве примеров Дженкинса значение опроса SCM обозначается */15 * * * *, т.е. опроса SCM каждые 15 минут. Это прекрасно, если у вас сотни заданий, но не у вас есть тысячи заданий, так как это приводит к тысячам запросов к серверу SCM (Subversion в этом случае) через 15, 30, 45 и 0 минут за час.

Есть ли способ рандомизировать значение опроса в Jenkins, чтобы избежать описанного выше сценария?

На главном экране конфигурации Jenkins появится значение "Максимальное количество одновременных опросов". Должно ли это быть установлено (и какое значение), чтобы избежать описанного выше сценария?

4b9b3361

Ответ 1

Используйте H вместо *, и Дженкинс будет случайным образом распространять опрос. Обратите внимание, что в настоящее время хороший синтаксис не найден для частоты, отличающейся от одного раза в час/день/и т.д., Поэтому

H * * * *

будет проводить опрос один раз в час в заранее определенную случайную минуту.

H H * * *

будет проводить опрос один раз в день в заранее определенный случайный час и минуту

H H H * *

будет проводить опрос один раз в неделю

0 H * * *

будет опроса в час, но один раз в день в заранее определенный случайный час.

Имейте в виду, что вам разрешено использовать несколько линий cron, и любой из них будет соответствовать, поэтому до тех пор, пока не будет установлен хороший синтаксис для частоты часов в часах, вы можете приблизиться (в среднем) к чему-то вроде

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

даст вам в среднем 15 минут между опросами (да, будет 6 опросов в час, но это даст хороший шанс, что по крайней мере один опрос упадет за каждый четверть часа)

Если у вас есть хорошие предложения по распределению синтаксиса в течение часа, ответьте на эту тему:

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

Обновление (апрель 2013 г.)

Jenkins 1.510 и более новый

Ответ 2

Если вы установите максимальное число одновременных опросов на что-то между 1 и 3, тогда запросы опроса будут просто стоять в очереди и обрабатываться последовательно (или не более 3 параллельно).

Учитывая, что все, что участвует в опросе для SVN, эффективно

svn info branch-url

Они должны все быстро завершить, но по крайней мере вы будете ограничены параллельными запросами.

Ответ 3

Решение

@Stephen Connolly, вероятно, является хорошим решением для этого.

Если у вас действительно есть тысячи заданий, о которых стоит беспокоиться, подумайте о настройке времени на основе некоторой части имени задания (предполагая, что ваши имена заданий разумно распределены).

Например, если ваше задание начинается с "B", установите тайминги на */2. Если он начинается с 'C', установите его на */3 и т.д. (Для "A" потребуется нечто, отличное от 1).

Это не потрясающее решение, но если вы действительно смотрите на управление многими заданиями, это может быть обход, пока вы не найдете лучшего решения.

Ответ 4

H H H * *

Я думаю, что выше будет опрос один раз в месяц не в неделю