Expressão Cron - Cronograma avançado
No Mentor Agendador, é possível cadastrar processos agendados que podem ser executados a partir de um cronograma avançado. Para configurar um cronograma avançado, deve-se utilizar uma Expressão Cron.
Cron ou trabalho cron é um utilitário padrão usado para executar comandos ou scripts programados. O Cron é normalmente utilizado para agendar tarefas repetitivas em uma data específica ou em intervalos de tempo fixos, como por exemplo: execução de rotinas no sistema, envio de e-mails, entre outros.
Nessa expressão, pode-se definir diversos tipos de cronograma, como por exemplo: “executar o processo a cada 30 minutos a partir de uma determinada hora em determinados dias da semana”.
Abaixo, segue uma explicação básica de como funciona a expressão cron:
Uma expressão cron é uma sequência especial de caracteres, composta por 5 campos separados por um espaço em branco:
minuto | hora | dia (mês) | mês | dia (semana)
Os campos podem conter qualquer um dos valores permitidos, junto com várias combinações dos caracteres especiais permitidos para aquele campo. Veja os campos abaixo e suas combinações:
Nome do campo | Obrigatório | Valores permitidos | Caracteres especiais permitidos |
---|---|---|---|
Minutos | Sim | 0 - 59 (minutos dentro de uma hora) | , - * / |
Horas | Sim | 0 - 23 (horas do dia) | , - * / |
DM - Dia do mês | Sim | 1 - 31 (dia do mês) | , - * ? / L W |
Mês | Sim | 1 - 12 (mês de JAN-DEZ) | , - * / |
DS - Dia da semana | Sim | 1 - 7 (dia da semana: 1 é Domingo e 7 é Sábado) | , - * ? / L # |
Abaixo, segue um exemplo de expressão cron, que pode ser gerado pelo site Gerador de expressão cron:
Para especificar múltiplos valores para um campo, os seguintes operadores estão disponíveis, em ordem de precedência:
Caractere especial | Descrição dos caracteres | ||||||
---|---|---|---|---|---|---|---|
* (todos os valores) | O asterisco é utilizado para selecionar todos os valores em um campo. Por exemplo: “*” no campo Minuto significa “a cada minuto”. | ||||||
? (valor não especificado) | Útil quando você precisa especificar algo em um dos dois campos em que o caractere é permitido, mas não no outro. Por exemplo: se eu quiser que meu gatilho dispare em um determinado dia do mês (digamos, o dia 10), mas não me importo que dia da semana seja, eu colocaria “10” no dia campo Dia do mês e “?” no campo Dia da semana. | ||||||
- | O hífen é utilizado para especificar intervalos. Por exemplo: “10-12” no campo Hora significa “as horas 10, 11 e 12”. | ||||||
, | A vírgula é utilizada para especificar valores adicionais. Por exemplo: “SEG,QUA,SEX” no campo Dia da semana significa “os dias segunda, quarta e sexta”. | ||||||
/ | A barra é utilizada para especificar incrementos. Por exemplo: “0/15” no campo Segundos significa “a cada 15 segundos, ou seja, os segundos 0, 15, 30 e 45”. E “5/15” no campo Segundos significa “os segundos 5, 20, 35 e 50”. Você também pode especificar “/” após o caractere “-”, neste caso, é equivalente a ter “0” antes de “/”. “1/3” no campo Dia do mês significa “disparar a cada 3 dias, começando no primeiro dia do mês”. | ||||||
L - last (último) | O L tem um significado diferente em cada um dos dois campos em que é permitido. Por exemplo: o valor “L” no campo Dia do mês significa “o último dia do mês” - dia 31 para janeiro, dia 28 para fevereiro em anos não bissextos. Se usado apenas no campo Dia da semana, significa simplesmente “7” ou “SÁB”. Mas se usado no campo Dia da semana após outro valor, significa “o último xxx dia do mês” - por exemplo, “6L” significa “a última sexta-feira do mês”. Você também pode especificar um deslocamento do último dia do mês, como “L-3”, que significaria o terceiro ao último dia do mês civil. Ao usar a opção “L”, é importante não especificar listas ou intervalos de valores, pois você obterá resultados confusos/inesperados. | ||||||
W - weekday (dia da semana) | usado para especificar o dia da semana (segunda a sexta) mais próximo de um determinado dia. Por exemplo: se você especificasse “15W” como o valor para o campo Dia do mês, o significado seria: “o dia da semana mais próximo ao 15º dia do mês”. Portanto, se o dia 15 for um sábado, o gatilho será acionado na sexta-feira, dia 14. Se o dia 15 for um domingo, o gatilho será disparado na segunda-feira, dia 16. Se o dia 15 for uma terça-feira, ele será disparado na terça-feira, dia 15. No entanto, se você especificar “1W” como o valor para o dia do mês e o 1º for um sábado, o acionador será acionado na segunda-feira, dia 3, pois não vai “pular” além do limite dos dias do mês. O caractere “W” só pode ser especificado quando o dia do mês é um único dia, não um intervalo ou lista de dias. | ||||||
# | A cerquilha (ou jogo da velha) é utilizada para especificar “o xxx” dia do mês. Por exemplo, o valor de “6#3” no campo Dia da semana significa “a terceira sexta-feira do mês” (dia 6 = sexta e “#3” = a 3ª no mês). Outros exemplos: “2#1” = a primeira segunda-feira do mês e “4#5” = a 5ª quarta-feira do mês. Observe que se você especificar “#5” e não houver 5 dias da semana no mês, então nenhum disparo ocorrerá naquele mês. | ||||||
- Os caracteres “L” e “W” também podem ser combinados no campo do dia do mês para produzir “LW”, que se traduz em “último dia da semana do mês”.
- DM (dia do mês) e DS (dia da semana) não podem ser especificados ao mesmo tempo, ou seja, se o dia da semana for informado, dia do mês recebe “?” (valor não especificado). Se dia do mês for informado, dia da semana recebe “?”
Se você preferir retire suas dúvidas com os nosso suporte, clique aqui e abra um chamado para atendimento.