Pular para o conteúdo
🛠️ToolsShed

Gerador de Expressões Cron

Construa expressões cron visualmente com predefinições e próximas execuções.

0 0 * * *

Descrição legível por humanos

Runs every day at midnight

Sobre esta ferramenta

As expressões cron são a sintaxe padrão para agendar tarefas em sistemas tipo Unix, bancos de dados e aplicações web. Como usam cinco ou seis campos para representar padrões de minuto, hora, dia, mês e dia da semana, seu formato conciso torna desafiador escrevê-las corretamente. Esta ferramenta elimina a adivinhação fornecendo uma interface visual onde você pode selecionar seu cronograma desejado usando menus suspensos e botões de opção intuitivos, vendo instantaneamente a expressão cron correspondente e quando o trabalho será executado a seguir.

Para usar a ferramenta, comece selecionando sua frequência de agendamento desejada entre presets comuns como "A cada minuto", "A cada hora", "Diariamente em uma hora específica" ou "Personalizado". Após escolher um preset ou opção personalizada, ajuste as restrições específicas de tempo ou data usando os controles interativos. A ferramenta gera imediatamente a sintaxe de expressão cron padrão e exibe a próxima hora de execução, facilitando a verificação de seu cronograma antes de implantá-lo em sua aplicação. Isso é particularmente útil ao configurar trabalhos em background, tarefas de manutenção de banco de dados ou relatórios automatizados onde a precisão é crítica.

Perguntas Frequentes

Implementação de Código

import re

def describe_cron(expression: str) -> str:
    """Parse a cron expression and return a plain-text description."""
    parts = expression.strip().split()
    if len(parts) != 5:
        raise ValueError("Expected 5 fields: minute hour day month weekday")

    minute, hour, day, month, weekday = parts

    def field(val, unit):
        if val == "*": return f"every {unit}"
        if val.startswith("*/"):
            return f"every {val[2:]} {unit}s"
        if "," in val:
            return f"{unit}s {val}"
        if "-" in val:
            lo, hi = val.split("-")
            return f"from {unit} {lo} to {hi}"
        return f"at {unit} {val}"

    months = ["", "Jan", "Feb", "Mar", "Apr", "May", "Jun",
              "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
    days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]

    parts_desc = [
        field(minute, "minute"),
        field(hour, "hour"),
        field(day, "day-of-month"),
        field(month, "month"),
        field(weekday, "weekday"),
    ]
    return ", ".join(parts_desc)

# Examples
print(describe_cron("0 9 * * 1-5"))   # Every weekday at 9 AM
print(describe_cron("*/15 * * * *"))  # Every 15 minutes
print(describe_cron("0 0 1 * *"))     # First day of every month at midnight

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.