
Necesito hacer un trabajo cron para ejecutar un programa java cada 40 minutos en un servidor Unix. considerando que: 1)deberá funcionar de 8h30 a 12h30 y de 14h a 18h de lunes a viernes 2) tener en cuenta los días festivos.
Leí mucho sobre esto y encontré esto */30 8..13,14..19 * * 1..5 como la solución más cercana. Quiero saber si crontab puede hacer lo que quiero y, de no ser así, es posible corregir un código Java o cualquier otro código para verificar la fecha festiva. Gracias por tu ayuda
Respuesta1
CRON no es tan inteligente, necesitarás tener muchas reglas similares o escribir algo un poco más personalizado para hacerlo por ti (pero ten cuidado, no querrás escribir un script que ejecute cosas proporcionadas por el usuario como rootear sin tener especial cuidado. Táchalo, no querrás escribir un script que haga eso y punto).
Respuesta2
Como dijo James, cron no es realmente tan inteligente: es bueno para "Haz estas cosas en estos momentos, una y otra vez hasta que te diga que pares", pero no seguirá vacaciones flotantes ni te emocionará lo "funky". tiempos como every 40 minutes
(Se requieren un montón de entradas crontab para hacer algo así; prácticamente necesitas hacer una para cada ejecución).
Probablemente sea mejor acercarse "lo más posible" a cron (es decir, su regla anterior, que es "Ejecutar cada media hora en la marca HH:30" dentro de las restricciones de la parte 1), y luego hacer que su script verifique el excepciones (vacaciones) por sí solo y decidir si debe o no proceder.
Respuesta3
Puede que sea excesivo para lo que desea, pero podría utilizar Hudson para ejecutar los trabajos. En sí mismo, no tendrá inmediatamente la capacidad de ejecutar los trabajos usando sus reglas de tiempo, pero puede activar trabajos de forma remota mediante varios métodos. Entonces, si puedes escribir un script para cambiar el contenido de una página web o crear nuevos archivos o hacer una llamada REST a Hudson o hacer un registro de git cuando quieras que se ejecute el trabajo, entonces estás de suerte. También obtiene un mejor registro que cron solo, y es fácil recibir alertas cada vez que falla el trabajo (por correo electrónico, jabber, irc, nabaztag...)
Mirando esto desde otra perspectiva. ¿Realmente necesita que se ejecute dentro de las reglas especificadas? ¿Qué sucede si lo ejecutas cada media hora? ¿Qué pasa si lo ejecutas en momentos que no quieres?