Quando existem muitos projetos configurados no Jenkins com a função "Consultar periodicamente o SCM" ativada, um cuidado especial é necessário na definição da sintaxe do cron. Em meu uso percebi que o Jenkins é extremamente instável no caso do cron ativar esta verificação em muitos projetos simultaneamente, de forma que o processo do Jenkins pode acabar morrendo. Com isso vários problemas podem ser trazidos para o ambiente de desenvolvimento, de acordo com os jobs que poderiam estar agendados ou em execução e foram finalizados de forma brusca, inclusive podendo corromper outras pastas sob versionamento.
A princípio a definição de 16 projetos meus sobre uma sintaxe idêntica do cron para consulta ao SCM a cada 15 minutos não me pareceu problema, mas ao atingir o primeiro minuto dentre os agendados e presenciar o jenkins realizar as 16 consultas simultaneamente, o processo de execução do jenkins morreu. Ao entender o problema e tentar minimizar o problema dividindo os projetos em grupos, para que em cada minuto diferente de uma hora (do zero ao 59) apenas 3 projetos diferentes realizassem a consulta simultânea, por algum tempo o jenkins continuou funcionando sem problemas, mas após um certo tempo o resultado obtido foi o mesmo, com a morte do processo do Jenkins .
A solução que tem funcionado até o presente momento (por enquanto por apenas um dia após a implantação) foi definir uma divisão sem agrupamentos, de forma que a cada minuto de uma hora apenas um único projeto faça a consulta ao SCM, sem consultas simultâneas. Para isto é preciso atenção nas sintaxes de agendamento dos diferentes projetos, pois por exemplo caso um projeto esteja configurado para verificar a cada 7 minutos e outro a cada 5, será inevitável que após 35 minutos eles façam uma consulta simultânea, e caberá à sorte e a instabilidade do Jenkins para definir se o projeto morrerá ou não. Na minha solução eu defini manualmente os minutos de execução para cada projeto, de forma que os projetos de menor prioridade tiveram apenas 2 minutos atribuídos a si dentro dos 60 possíveis para realizar a verificação, de forma que então consultam o SCM 1 vez a cada 30 minutos, mas sem coincidências (vide listagem abaixo). Já projetos de maior prioridade tiveram 12 minutos atribuídos a si dos 60 possíveis, de forma a consultar o SCM a cada 5 minutos, mas novamente sem coincidir com os outros projetos. Nesta distribuição consegui dividir uma hora para 24 projetos simples e 1 projeto principal.
Segue como sugestão a distribuição que fiz:
Minutos Minutos Cron Projeto
0 30 */5 * * * * Projeto Principal Único
1 31 1,31 * * * * Projeto Menor Importância 1
2 32 2,32 * * * * Projeto Menor Importância 2
3 33 3,33 * * * * Projeto Menor Importância 3
4 34 4,34 * * * * Projeto Menor Importância 4
5 35 Projeto Principal Único
6 36 6,36 * * * * Projeto Menor Importância 5
7 37 7,37 * * * * Projeto Menor Importância 6
8 38 8,38 * * * * Projeto Menor Importância 7
9 39 9,39 * * * * Projeto Menor Importância 8
10 40 Projeto Principal Único
11 41 11,41 * * * * Projeto Menor Importância 9
12 42 12,42 * * * * Projeto Menor Importância 10
13 43 13,43 * * * * Projeto Menor Importância 11
14 44 14,44 * * * * Projeto Menor Importância 12
15 45 Projeto Principal Único
16 46 16,46 * * * * Projeto Menor Importância 13
17 47 17,47 * * * * Projeto Menor Importância 14
18 48 18,48 * * * * Projeto Menor Importância 15
19 49 19,49 * * * * Projeto Menor Importância 16
20 50 Projeto Principal Único
21 51 21,51 * * * * Projeto Menor Importância 17
22 52 22,52 * * * * Projeto Menor Importância 18
23 53 23,53 * * * * Projeto Menor Importância 19
24 54 24,54 * * * * Projeto Menor Importância 20
25 55 Projeto Principal Único
26 56 26,56 * * * * Projeto Menor Importância 21
27 57 27,57 * * * * Projeto Menor Importância 22
28 58 28,58 * * * * Projeto Menor Importância 23
29 59 29,59 * * * * Projeto Menor Importância 24