Saltar al contenido
🛠️ToolsShed

Generador de Expresiones Cron

Construye expresiones cron visualmente con presets y próximas ejecuciones.

0 0 * * *

Descripción legible

Runs every day at midnight

Acerca de esta herramienta

Las expresiones cron son la sintaxis estándar para programar tareas en sistemas tipo Unix, bases de datos y aplicaciones web. Debido a que utilizan cinco o seis campos para representar patrones de minuto, hora, día, mes y día de la semana, su formato conciso hace que sea desafiante escribirlas correctamente. Esta herramienta elimina la incertidumbre proporcionando una interfaz visual donde puede seleccionar su horario deseado utilizando cuadros desplegables y botones de radio intuitivos, viendo al instante la expresión cron correspondiente y cuándo se ejecutará el trabajo a continuación.

Para usar la herramienta, comience seleccionando su frecuencia de programación deseada entre presets comunes como "Cada minuto", "Cada hora", "Diariamente a una hora específica" o "Personalizado". Una vez que elige un preset u opción personalizada, ajuste las restricciones específicas de tiempo o fecha utilizando los controles interactivos. La herramienta genera inmediatamente la sintaxis estándar de expresión cron y muestra la próxima hora de ejecución, lo que facilita verificar su programación antes de implementarla en su aplicación. Esto es particularmente útil al configurar trabajos en segundo plano, tareas de mantenimiento de bases de datos o reportes automatizados donde la precisión es crítica.

Preguntas Frecuentes

Implementación 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.