Cron Unix vs Spring e Quartz

Compara o formato Unix de cinco campos com as expressões Spring e Quartz de seis ou sete campos e evita erros de conversão.

Diferenças de formato

SistemaCamposTodos os dias às 02:00
Cron Unix50 2 * * *
Spring Cron60 0 2 * * *
Quartz Cron6 ou 70 0 2 * * ?

Unix começa nos minutos. Spring e Quartz começam nos segundos. Quartz aceita ainda modificadores como ?, L, W e #.

Não te limites a adicionar 0. Confirma a numeração do domingo, as regras dos campos de dia e os modificadores suportados.

Exemplos de conversão

ObjetivoUnix ou KubernetesSpringQuartz
A cada minuto* * * * *0 * * * * *0 * * * * ?
Todos os dias às 02:000 2 * * *0 0 2 * * *0 0 2 * * ?
Dias úteis às 09:000 9 * * 1-50 0 9 * * MON-FRI0 0 9 ? * MON-FRI

Estes exemplos mostram a posição dos campos, mas a sintaxe aceite depende sempre da implementação e da versão. O Quartz usa ? para não especificar um valor num dos dois campos de dia.

Caracteres específicos do Quartz

  • ? deixa o dia do mês ou da semana sem valor específico.
  • L representa o último dia, conforme o campo.
  • W escolhe o dia útil mais próximo.
  • # seleciona uma ocorrência, como a segunda segunda-feira do mês.

Estes modificadores não funcionam numa crontab Linux normal nem num CronJob Kubernetes.

Lista de verificação para migração

Identifica primeiro o agendador. Conta os campos, confirma se aceita segundos e ano, verifica a numeração dos dias e o fuso horário. Pré-visualiza várias execuções, incluindo mudanças de mês. Durante a revisão, mantém a expressão original ao lado da convertida para detetar facilmente um campo deslocado.

Cria um agendamento no gerador Cron e confirma a documentação do agendador de destino.