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
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.