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
| 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 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
| 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 |
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.Lrepresenta o último dia, conforme o campo.Wescolhe 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.