Lição 5

Fluxo de depuração de Cron

Parse, validação, prévia das próximas execuções e erros off-by-one no dia da semana.

Publicar uma linha cron sem verificação é como times descobrirem que o backup roda ao meio-dia em vez de meia-noite. Trate agendamentos como código: parse, explique, pré-visualize.

Passo 1: Normalizar a linha

  • Apenas cinco campos (salvo se a plataforma documentar seis)
  • Sem espaços extras; comentários removidos (# backup job em linha própria no crontab, não dentro dos campos)
  • Confirme que não está misturando sintaxe Quartz com ? e cron Unix

Cole a expressão em um parser e leia a decomposição campo a campo.

Passo 2: Ler a descrição em linguagem natural

Uma boa descrição responde:

  • Quais minutos e horas disparam?
  • Dia do mês e dia da semana estão ambos restritos — e vale semântica OR?
  • É “toda manhã de dia útil” ou algo mais estranho?

Se o resumo (em português ou outro idioma) não bate com a intenção, corrija os campos antes do deploy.

Passo 3: Pré-visualizar próximas execuções

Gere pelo menos três a cinco instantes futuros em:

  • O fuso de execução da plataforma
  • UTC (para correlacionar com logs e Actions)

Compare com um calendário — especialmente em viradas de mês, transições de horário de verão e meses curtos.

Passo 4: Conferir a documentação da plataforma

PerguntaAção
GitHub Actions?Assuma UTC
CronJob no K8s?Defina timeZone explicitamente
Crontab Linux?Conheça timedatectl do servidor
Motor de seis campos?Traduza; não copie cegamente

Checklist de erros comuns

ErroSintoma
Confusão domingo 7 vs 0Dia da semana deslocado
DOM e DOW ambos definidos esperando ANDExecuções extras
*/60 no campo minutoAgendamento inválido ou vazio
9h local escrita para Actions em UTCJob na hora de parede errada
Job longo + intervalo curtoExecuções sobrepostas

Passo 5: Documentar no runbook

Registre expressão, fuso, plataforma, dono e duração esperada. Vincule monitoramento que prove que a última execução teve sucesso.

Conclusão

Parse → descrever → pré-visualizar → documentar. Se qualquer passo discordar das expectativas, pare. Bugs de cron são silenciosos até o financeiro perguntar por que o relatório rodou duas vezes.

Voltar à visão geral do curso