1001Ferramentas
Validadores

Validador Cron Quartz Strict

Valida expressões cron no formato Quartz Scheduler (6 ou 7 campos) com ? L W # e ranges complexos.

Formato Quartz
  • seconds (0-59), minutes (0-59), hours (0-23)
  • day-of-month (1-31, ?, L, W, NW, L-N)
  • month (1-12 ou JAN-DEC)
  • day-of-week (1-7 ou SUN-SAT, ?, L, N#K)
  • year (opcional, 1970-2099)
  • ? em dayOfMonth ou dayOfWeek (apenas um dos dois)

Expressões cron do Quartz explicadas

O Quartz Scheduler é o agendador de jobs de fato no ecossistema Java / Spring, e sua sintaxe de cron difere do clássico cron Unix de 5 campos. O Quartz usa 6 campos obrigatórios mais um 7º opcional, e adiciona vários caracteres especiais que o cron Unix não tem. Este validador confere a contagem de campos e os valores e caracteres permitidos por campo.

Os campos

Em ordem: seconds minutes hours day-of-month month day-of-week, com um year opcional como 7º campo.

  • seconds (0-59), minutes (0-59), hours (0-23)
  • day-of-month (1-31)
  • month (1-12 ou JAN-DEC)
  • day-of-week (1-7 onde 1=SUN..7=SAT, ou SUN-SAT)
  • year (opcional, ex.: 1970-2099)

Caracteres especiais

  • * — todos os valores do campo.
  • ? — "nenhum valor específico"; permitido apenas em day-of-month ou day-of-week, e exatamente um dos dois deve ser ?.
  • - intervalo, , lista, / passo (ex.: 0/15).
  • L — último (último dia do mês, ou último dia da semana indicado).
  • W — dia útil mais próximo de um dado day-of-month.
  • # — o n-ésimo dia da semana do mês, ex.: 6#3 = a 3ª sexta-feira (como DOW é 1=SUN..7=SAT, 6=FRI).

Pegadinhas comuns

  • Copiar uma expressão Unix de 5 campos diretamente — o Quartz precisa de pelo menos 6 campos (tem um campo de segundos no início).
  • Definir tanto day-of-month quanto day-of-week com um valor, ou ambos como * — exatamente um deve ser ?.
  • Supor a numeração de dia da semana do Unix; no Quartz 1=SUN, não segunda-feira.
  • Usar ? em um campo que não seja day-of-month / day-of-week.
  • Ler 6#3 errado como "todo dia 6 e 3" — significa a 3ª ocorrência do dia da semana 6.

FAQ

Por que o Quartz tem um campo de segundos? O Quartz pode disparar jobs com precisão de segundos, então o primeiro campo é de segundos — essa é a principal diferença estrutural em relação ao cron Unix.

O que faz 0 0 12 ? * MON-FRI? Dispara às 12:00:00 de segunda a sexta — o day-of-month é ? porque o agendamento é guiado pelo day-of-week.

O campo de ano é obrigatório? Não, é opcional. Omita-o para um agendamento recorrente; inclua-o para restringir o disparo a anos específicos.

Ferramentas Relacionadas