Cron Dispatch
Usa esta habilidad cuando un script deba ejecutarse sin supervisión en un horario y el mismo patrón deba funcionar tanto en un equipo de desarrollo Windows como en un servidor Linux. Proporciona configuración lista para copiar y pegar para el Programador de tareas de Windows y cron de Linux, además de registro en archivo y un protector de superposición para que una ejecución lenta nunca se acumule sobre el siguiente ciclo.
Cuándo invocar
- El usuario dice: "ejecuta esto todas las noches" / "configura un trabajo cron" / "programa un script" / "programador de tareas de Windows"
- El código en la conversación usa: un script independiente (Python, Node, shell) que debería ejecutarse con un temporizador en lugar de hacerlo manualmente.
Cuándo NO invocar
- El trabajo pertenece a un servicio siempre activo o un bucle de eventos existente, no a un programador del sistema operativo.
- El usuario quiere un programador administrado en la nube (cron de GitHub Actions, funciones en la nube) en lugar de una máquina local.
Ejemplo concreto
Entrada del usuario:
Ejecuta mi scraper.py todos los días a las 9 a.m. en Windows ahora, y dame la línea cron de Linux para el servidor más tarde.
Salida:
# Windows: registrar una tarea diaria a las 09:00 (ejecutar desde la raíz del repositorio)
powershell -ExecutionPolicy Bypass -File assets/setup_task.ps1 `
-TaskName "scraper-daily" `
-Command "python" `
-Arguments "E:\proj\scraper.py" `
-Time "09:00"
# Linux: mismo trabajo, 09:00 diario, registrado, sin superposición
0 9 * * * cd /srv/proj && flock -n /tmp/scraper.lock python scraper.py >> /srv/proj/cron.log 2>&1
Patrón a aplicar
- Elige una expresión de horario y tradúcela tanto a desencadenadores del Programador de tareas como a una línea cron de 5 campos.
- Ejecuta siempre el script desde su directorio de proyecto para que las rutas relativas se resuelvan correctamente.
- Añade la salida estándar y la de error a un archivo de registro; nunca confíes en una consola que nadie está mirando.
- Protégete contra la superposición (
flocken Linux,-MultipleInstances IgnoreNewen Windows) para que una ejecución larga no se duplique. - Registra, lista y elimina usando un nombre de tarea estable para que la reconfiguración se mantenga idempotente.
Referencia: assets/setup_task.ps1, assets/cron_linux.sh.
Fuente
Destilado del uso en producción en los proyectos de automatización del autor. v1.0.0. Ver también: [[pipeline-orchestrator]], [[telegram-alerter]].
→ Construye el bot ejecutable completo con Trawlkit.