O Que É uma Build Queue? Onde os Jobs Esperam por um Runner
Uma build queue é a fila de jobs aguardando um agente disponível; os jobs ficam ali até que haja capacidade livre para executá-los.
Quando há mais jobs prontos do que agentes para executá-los, os jobs extras aguardam em uma fila. O tempo de fila é pura espera: nenhum trabalho acontece, mas o relógio do seu pipeline continua correndo. Entender a fila é essencial para entender por que um pipeline que "leva apenas cinco minutos" ainda pode demorar vinte para retornar.
Por que uma fila se forma
Uma fila se forma sempre que a demanda excede a capacidade. Uma rajada de pushes, uma matrix grande ou um horário de pico podem colocar jobs na fila. O job está pronto, mas todos os agentes estão ocupados, então ele espera sua vez.
Tempo de fila vs tempo de execução
- Tempo de fila: esperando por um agente (nenhum trabalho feito).
- Tempo de execução: o agente realmente executando os steps.
- Tempo total que o desenvolvedor percebe = tempo de fila + tempo de execução.
Um exemplo rápido
Dez desenvolvedores fazem push às 9h e você tem cinco agentes. Cinco jobs executam imediatamente; os outros cinco entram na fila até o primeiro lote terminar. A duração reportada de cada job na fila parece curta, mas a espera foi real.
Encurtando a fila
Você encurta uma fila adicionando capacidade, fazendo os jobs terminarem mais rápido (para os agentes liberarem mais cedo) ou executando menos jobs redundantes. O autoscaling adiciona agentes sob carga; limites de concorrência e o cancelamento de execuções obsoletas reduzem a demanda.
Filas em runners gerenciados
O tempo de fila é um dos custos de CI mais frustrantes e menos visíveis. Runners gerenciados (Latchkey) mantêm um pool aquecido e escalam rapidamente, então rajadas de jobs começam a executar com pouco ou nenhum tempo gasto esperando na fila.
Principais conclusões
- Uma build queue mantém os jobs que estão prontos, mas aguardando um agente livre.
- O tempo de fila é pura espera e soma-se ao tempo de pipeline que os desenvolvedores percebem.
- Adicione capacidade, acelere os jobs ou corte execuções redundantes para encurtar a fila.