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
| Sistema | Campos | Todos os dias às 02:00 |
|---|---|---|
| Cron Unix | 5 | 0 2 * * * |
| Spring Cron | 6 | 0 0 2 * * * |
| Quartz Cron | 6 ou 7 | 0 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
| Objetivo | Unix ou Kubernetes | Spring | Quartz |
|---|---|---|---|
| A cada minuto | * * * * * | 0 * * * * * | 0 * * * * ? |
| Todos os dias às 02:00 | 0 2 * * * | 0 0 2 * * * | 0 0 2 * * ? |
| Dias úteis às 09:00 | 0 9 * * 1-5 | 0 0 9 * * MON-FRI | 0 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.Lrepresenta o último dia, dependendo do campo.Wseleciona 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.