Português (Brasil)

Ferramentas de desenvolvedor · Gerador Crontab

Lendo uma expressão cron em voz alta: como */5 9-17 * * 1-5 se transforma em palavras

· Como funciona

cron revisão de código fluxo de trabalho do desenvolvedor

Cinco tokens cron fluindo para um cartão de revisão em linguagem simples
Ilustração vetorial original ToolAcre

Traduzir uma expressão para o inglês é um processo mecânico, uma vez que você conhece a ordem. Esta postagem fornece o algoritmo de leitura, aplica-o a exemplos complicados e mostra como a explicação de um gerador ajuda você a verificar.

Um crontab no diff que você não pode revisar — ​​cinco campos com etapas e intervalos, e nenhum comentário explicando-os

Uma expressão de cinco tokens em uma solicitação pull é uma política executável compactada em pontuação. Os revisores que reconhecem a forma, mas não conseguem dizer o cronograma em voz alta, provavelmente perderão um ponto final inclusivo, uma etapa mal colocada ou a relação especial entre os campos de dois dias. A tradução é, portanto, uma verificação de exatidão e não uma documentação cosmética.

ToolAcre deriva sua frase do objeto analisado usado por avisos e visualizações. Cole apenas os cinco campos, deixando o comando e os segredos de fora. Se o texto gerado for diferente do comentário do autor, pause a revisão e resolva a intenção antes que a expressão seja instalada em qualquer lugar.

Leia primeiro os campos do dia - o dia da semana e o mês informam quais dias, depois o minuto e a hora informam quando

O escopo do calendário é mais fácil de estabelecer antes dos detalhes do relógio. O mês e o dia da semana revelam quais partes do ano ou da semana são elegíveis; dia do mês pode adicionar outra condição de calendário; hora e minuto, em seguida, coloque corridas dentro das datas correspondentes. Esta ordem de leitura é para revisão humana, enquanto a ordem posicional armazenada da expressão permanece em primeiro minuto.

Sempre pergunte se ambos os campos do dia são restritos. Nesse caso, ToolAcre une-os com “ou” e emite um aviso. Lê-los casualmente como filtros AND adjacentes altera a programação. Um curinga no campo de um dia remove essa ambigüidade e permite que o outro campo atue como a restrição de único dia.

Traduzindo cada token — * como 'todo', um número como 'em', um intervalo como 'de-para', um passo como 'cada N começando em'

Uma estrela significa todos os valores permitidos nessa posição. Um número seleciona um valor. Um hífen inclui todos os valores entre seus pontos finais. As vírgulas combinam itens e uma barra mostra cada enésimo valor desde o início de um curinga, intervalo ou início simples. O mínimo do campo determina onde começa uma etapa curinga.

Os nomes são aceitos para meses e dias da semana, independentemente de maiúsculas e minúsculas, incluindo intervalos como `JAN-MAR` e `MON-FRI`. Domingo pode ser escrito 0 ou 7 e é normalizado para 0. O código de descrição converte valores expandidos contíguos em palavras “através” e valores não contíguos em uma lista legível.

Exemplo resolvido: a ferramenta descreve as horas selecionadas, enquanto os valores de minutos expandidos identificam a execução final

`*/5 9-17 * * 1-5` seleciona valores de minutos 0 a 55 em etapas de cinco, horas 9 a 17 e dias da semana de segunda a sexta. A ferramenta descreve passos de minutos no intervalo de horas selecionado. A expansão dos valores mostra que o candidato final na hora 17 incluída é 17:55.

Esse último candidato muitas vezes passa despercebido quando “9-17” é parafraseado como um limite de dia útil. Cron seleciona valores completos de horas e os combina com todos os minutos selecionados. Se a intenção terminar em 17:00, a expressão não poderá ser considerada correta simplesmente porque as palavras “nove às cinco” soam familiares.

Exemplo resolvido: 0 0 1,15 * 3 - lendo o campo do dia OU descartando em voz alta para que não seja perdido

Agora leia `0 0 1,15 * 3`. Meia-noite é selecionada, o dia do mês é o primeiro ou o décimo quinto e o dia da semana é quarta-feira. Como ambos os campos de dia são restritos, a condição do calendário é o primeiro ou o décimo quinto dia de cada mês OU toda quarta-feira. Não é “quarta-feira quando a data é 1 ou 15”.

O aviso de ToolAcre torna essa união proeminente e sua descrição insere a palavra “ou”. A visualização da próxima execução fornece datas concretas para a zona selecionada. Revise todos os três resultados porque uma frase fluente por si só ainda pode ocultar que o requisito subjacente era uma interseção que o dialeto não consegue expressar diretamente.

Armazene um comentário de intenção somente depois de compará-lo com a expressão

Um comentário acima de uma expressão pode preservar a intenção, mas também pode preservar uma mentira antiga após a mudança dos campos. Gere ou reconstrua manualmente a frase a partir dos tokens atuais durante a revisão. Se uma edição alterar `0` para `*/5`, atualize o comentário somente após confirmar o conjunto de minutos expandido e a execução final.

Prefira um comentário que indique a suposição da zona do relógio de parede, bem como a frequência. A expressão não contém campo de fuso horário, enquanto a visualização de ToolAcre pede ao revisor para escolher um. Essa nota ajuda outra pessoa a reproduzir a mesma lista sem implicar que a escolha do navegador configure o eventual agendador.

Gramáticas de seis e sete campos são recusadas e não traduzidas

O analisador requer exatamente cinco campos. Uma entrada de seis campos recebe uma explicação específica sobre um estilo de segundos iniciais; formulários mais longos não são interpretados. ToolAcre também não possui campo de ano. Portanto, o algoritmo de inglês simples neste artigo se aplica apenas à gramática de cinco campos do repositório.

Não retire um campo do Quartz, Spring ou outro produto até que o texto restante seja validado. Operadores não suportados podem ter um significado essencial. A tradução requer documentação para ambos os sistemas, enquanto este gerador fornece evidências apenas para seus próprios valores, nomes, intervalos, listas, etapas, curingas e apelidos aceitos.

Conclusão: cada expressão tem uma frase – e o gerador Crontab produz essa frase para que você possa compará-la com a intenção

Cada expressão suportada pode ser expandida em valores de campo finitos e uma frase de calendário. A leitura desses valores expõe candidatos extremos que as frases informais omitem. Ele também força a regra OR do campo diário na conversa antes que a programação chegue a um host operacional.

Para revisão, cole a expressão, compare a descrição gerada com o requisito declarado, inspecione os avisos e obtenha amostras dos próximos tempos. Mantenha o comentário resultante ao lado da linha, mas trate a expressão analisada como a fonte executável. O gerador explica a intenção do cronograma; ele não atesta um comando nem o instala.