Funcionamento do Agendamento com Expressões Cron
O agendamento de tarefas em sistemas operativos e servidores baseia-se frequentemente na sintaxe cron. Uma expressão cron é uma cadeia de caracteres que define intervalos de tempo específicos para a execução automatizada de scripts, cópias de segurança ou processos de sistema. O Analisador de Expressão Cron decompõe esta cadeia nos seus componentes individuais, traduzindo a sintaxe técnica numa descrição legível e calculando as datas e horas exatas das próximas execuções.
Esta ferramenta processa expressões cron padrão de 5 campos, que cobrem os seguintes parâmetros, ordenados da esquerda para a direita:
- Minuto: define o momento exato da hora para a execução.
- Hora: especifica as horas do dia em que a tarefa deve correr.
- Dia do mês: determina os dias específicos do mês para a atividade.
- Mês: define os meses do ano em que o agendamento está ativo.
- Dia da semana: estabelece os dias da semana para a execução.
Componentes e Sintaxe Suportada
O analisador aceita diferentes formatos de valores para cada um dos cinco campos:
- Valores Únicos e Listas: É possível definir momentos exatos (como
5ou1,15para executar nos minutos 1 e 15). - Intervalos: Definidos por um hífen, como
1-5, que representa a execução contínua do ponto inicial ao ponto final. - Passos: Representados por uma barra, como
*/15, que indica a repetição a cada intervalo definido (por exemplo, a cada 15 minutos). - Nomes: O analisador suporta a identificação de meses (como
JAN) e dias da semana (comoMON) através de abreviaturas textuais padrão. - Atalhos: São aceites comandos predefinidos que substituem a expressão de 5 campos, nomeadamente
@yearly,@monthly,@weekly,@dailye@hourly.
Quando um campo contém o caractere universal *, o analisador traduz este valor como "Qualquer". Para formatos de passo baseados em */n, a ferramenta gera descrições estruturadas como "A cada {n} minutos", "A cada {n} horas", "A cada {n} dias", "A cada {n} meses" ou "A cada {n} dias".
O analisador foca-se estritamente na sintaxe clássica de 5 campos. Não é suportado um sexto campo para segundos, assim como não são processadas extensões específicas do Quartz, tais como os caracteres L, W ou #.
Comportamento dos Campos e Regras de Correspondência
Existe uma regra de interação crucial entre o terceiro campo (dia do mês) e o quinto campo (dia da semana). Quando ambos os campos estão restritos — ou seja, contêm valores diferentes do caractere universal * — o agendador adota uma lógica de disjunção (operador OR). Isto significa que uma correspondência em qualquer um dos campos é suficiente para que a tarefa seja executada. A tarefa correrá se o dia atual coincidir com o dia do mês especificado ou se coincidir com o dia da semana definido, não sendo necessário que ambas as condições se verifiquem em simultâneo.
Se o utilizador introduzir uma expressão com erros de sintaxe, a ferramenta apresenta a mensagem "Expressão cron inválida". Caso a expressão seja válida mas resulte num agendamento impossível de concretizar, o sistema exibe o aviso "Este agendamento nunca ocorrerá — verifique se há um dia do mês que não existe em todos os meses selecionados". Este cenário ocorre tipicamente ao definir o dia 31 em meses que apenas possuem 30 dias ou menos, como abril, junho, setembro ou novembro.
Processamento Local e Privacidade
A análise da expressão cron e o cálculo das próximas execuções ocorrem inteiramente no navegador do utilizador. Os dados introduzidos no campo de texto não são transmitidos para servidores externos nem são enviados para o BroBroGo. Este modelo de processamento local garante que as configurações de infraestrutura e os padrões de agendamento permanecem confinados ao ambiente de execução do cliente.
As datas e horas apresentadas na lista de próximas execuções são calculadas com base no fuso horário local do navegador do utilizador. Isto permite validar visualmente o agendamento de acordo com a hora do sistema local, embora seja necessário acautelar que o servidor onde a tarefa será executada pode estar configurado para um fuso horário diferente, como o Tempo Universal Coordenado (UTC).
Perguntas Frequentes
Qual sintaxe de cron esta ferramenta suporta? Cron padrão de 5 campos — minuto, hora, dia do mês, mês e dia da semana — incluindo intervalos (1-5), passos (*/15), listas (1,15), meses e dias da semana por nome (JAN, MON) e os atalhos @yearly/@monthly/@weekly/@daily/@hourly. Uma regra fácil de esquecer: quando tanto o dia do mês quanto o dia da semana estão restritos (diferentes de *), a correspondência em qualquer um deles é suficiente — eles não precisam de coincidir.
Em qual fuso horário as próximas execuções são exibidas? O fuso horário local do seu navegador — o mesmo usado pelo relógio do seu sistema. O cron padrão não carrega informações de fuso horário; o agendador que o executa é quem define isso, portanto, encare esses horários como uma pré-visualização do seu agendamento local, não necessariamente do servidor.
Porque é que diz que este agendamento nunca ocorrerá? Geralmente é um valor de dia do mês que não existe em todos os meses selecionados — por exemplo, o dia 31 com abril, junho, setembro ou novembro no campo do mês. Escolha um dia que exista em todos os meses listados ou divida o agendamento em expressões separadas.