continuous integration - support - ¿Puedo hacer que el intervalo de sondeo SCM para Jenkins sea aleatorio?
jenkins tutorial (4)
En la mayoría de los ejemplos de Jenkins, el valor de sondeo SCM se designa * / 15 * * * *, es decir. Encuesta SCM cada 15 minutos. Eso está bien cuando tiene cientos de trabajos, pero no si tiene miles de trabajos, ya que resulta en miles de solicitudes al servidor de SCM (Subversion en este caso) a los 15, 30, 45 y 0 minutos después de la hora.
¿Hay alguna manera de aleatorizar el valor de sondeo en Jenkins para evitar el escenario anterior?
En la pantalla de configuración maestra de Jenkins hay un valor "Número máximo de sondeo simultáneo". ¿Debería establecerse esto (y con qué valor) para evitar el escenario anterior?
HHH * *
Creo que lo anterior será una encuesta por mes, no por semana
La solución de @Stephen Connolly es probablemente una buena solución para esto.
Si realmente tiene miles de trabajos de los que preocuparse, considere establecer el tiempo en función de alguna parte del nombre del trabajo (asumiendo que los nombres de sus trabajos estén distribuidos de manera razonable).
Por ejemplo, si su trabajo comienza con ''B'', configure los tiempos en * / 2. Si comienza con ''C'', ajústelo a * / 3, etc. (''A'' necesitaría algo distinto a 1).
No es una solución excelente, pero si realmente está buscando administrar muchos trabajos, podría ser una solución alternativa hasta que pueda encontrar una solución mejor.
Si configura el número máximo de sondeo concurrente entre 1 y 3, las solicitudes de sondeo simplemente se pondrán en cola y se procesarán en serie (o como máximo 3 en paralelo).
Dado que todo lo que está involucrado en la encuesta para SVN es efectivamente
svn info branch-url
Todos deben completarse rápidamente, pero al menos habrá limitado las solicitudes paralelas.
Use H en lugar de * y Jenkins distribuirá aleatoriamente el sondeo. Tenga en cuenta que en la actualidad no se ha encontrado una buena sintaxis para una frecuencia diferente de una por hora / día / etc, por lo que
H * * * *
Encuestará una vez por hora en un minuto aleatorio predeterminado.
H H * * *
sondeará una vez al día a una hora y minuto aleatorios predeterminados
H H H * *
sondeará una vez por semana
0 H * * *
sondeará la hora pero una vez al día a una hora aleatoria predeterminada.
Tenga en cuenta que se le permiten varias líneas cron y que coincidirán, por lo que hasta que se establezca una buena sintaxis para la frecuencia de menos de una hora, puede acercarse (en promedio) con algo como:
H * * * * H * * * * H * * * * H * * * * H * * * * H * * * *
le dará un promedio de 15 minutos entre las encuestas (sí, habrá 6 encuestas por hora, pero es para dar una buena posibilidad de que al menos una encuesta caiga en cada cuarto de hora)
Si tiene buenas sugerencias para una distribución de sintaxis dentro de la hora, responda a este hilo:
https://groups.google.com/forum/?fromgroups#!jenkinsci-users/VghEjfygWuw/PuIG1o7u1GQJ%5B1-25%5D
Actualización (abril 2013)
Jenkins 1.510 y más reciente incluye una nueva sintaxis que permite especificar distribuciones dentro de la hora