Cron Unix vs Spring e Quartz

Compare o formato Unix de cinco campos com expressões Spring e Quartz de seis ou sete campos e evite 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 também aceita modificadores como ?, L, W e #.

Não basta adicionar 0. Confira a numeração do domingo, as regras dos campos de dia e os modificadores aceitos pelo agendador.

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

Esses exemplos mostram a posição dos campos, mas a sintaxe aceita depende da implementação e da versão. O Quartz usa ? quando um dos dois campos de dia não deve ter um valor específico.

Caracteres específicos do Quartz

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

Esses modificadores não funcionam em uma crontab Linux tradicional nem em um CronJob do Kubernetes.

Lista de verificação para migração

Primeiro, identifique o agendador. Conte os campos, confirme se ele aceita segundos e ano, confira a numeração dos dias e verifique o fuso horário. Visualize várias execuções, inclusive em mudanças de mês. Durante a revisão, mantenha a expressão original ao lado da convertida para detectar facilmente um campo deslocado.

Crie um agendamento no gerador Cron e confira a documentação do sistema de destino.