Cómo configurar una expresión cron en C4C7OPS.

En este tutorial aprenderemos como configurar un servicio que ejecute en una tarea programa dentro de C4C7OPS usando una expresión cron para definir en qué momento se va a ejecutar periódicamente, como desplegarlo, como ejecutarlo manualmente si es necesario y cómo ver los logs de la instancia por cada vez que se ejecute dentro de la consola de C4C7OPS.

Podemos dividirlo en los siguientes pasos:

  1. Configurar nuestro proyecto y subirlo a un repositorio dentro de nuestro proveedor de git.
  2. Configurar nuestro proyecto en C4C7OPS definiendo un cron de ejecución
  3. Desplegar nuestro proyecto
  4. Visualizar que la ejecución sea exitosa, los logs que definamos y ejecutarlo manualmente.

1. Configurar nuestro proyecto y subirlo a un repositorio dentro de nuestro gestor de git.

En este paso crearemos un proyecto sencillo para subirlo a git y luego a C4C7OPS.

1.1 Creamos un archivo llamado de Docker en una carpeta vacia y lo configuramos de la siguiente forma:

Dockerfile
FROM alpine:3.16 CMD ["echo", "Hello World"]

1.2 Subimos nuestro archivo a nuestro proveedor de git en un nuevo proyecto.

git init
git add .
git commit -m "schelude_task"
git branch -M master
git remote add origin git@github.com:example/schedule_task_tutorial.git
git push -u origin master

2. Configurar nuestro proyecto en C4C7OPS definiendo un cron de ejecución:

En este punto es importante entender cómo se construyen las expresiones cron, las podemos definir de las siguiente forma:

* * * * * * Comando_a_ejecutar - - - - - - | | | | | +--- Año (20**) | | | | +----- Día de la semana (MON - SUN) | | | +------- Mes (1 - 12) | | +--------- Día del mes (1 - 31) | +----------- Hora (0 - 23) +------------- Minuto (0 - 59)

Hay que tener en cuenta que podemos especificar el día de mes o el día de la semana pero no podemos dejar ambos en * porque es imposible que aplique en todos los escenarios así que al menos uno debe ir con “?” y el otro con *.

Si queremos definir que una tarea se ejecute por ejemplo todos los días a las 3:30 a.m seria de la siguiente forma:

30 3 * * ? *

“30” indica los minutos, “3” indica la hora y para el resto de campos el “*” significa que se ejecutará siempre que se cumplan las primeras dos condiciones.

Y si por ejemplo queremos que se ejecute a las 3:30 a.m pero solo sabado y domingo podemos definirlo de la siguiente manera:

30 3 ? * SAT-SUN *

En donde “SAT” y “SUN” indican los días de la semana y la separación por guión indica que se ejecuten en ambos escenarios, tanto sábado como domingo.

En caso de que no se especifique una hora en el cron pero queramos que se ejecute cada minuto, cada cinco o diez podemos hacerlo de la siguiente forma:

*/numero_de_minutos * * * ? *

En donde el “/” significa que la tarea se ejecutará en todos los escenarios y el lugar donde definamos el valor indicará la magnitud, en este caso se ejecutará cada 10 minutos:

*/10 * ? * * *

En caso de que queramos que se ejecute cada 10 minutos a la 1 a.m podemos definirlo de la siguiente forma, donde indicaremos el intervalo de tiempo en minutos y la hora específica:

*/10 1 ? * * *

Esto se ejecutara todos los días hasta desde la 1 a.m hasta la 1:55 a.m.

Esto aplica también para todas las magnitudes, este es el ejemplo de si quisiéramos que se ejecutará cada dos horas:

0 */2 ? * * *

Ahora, si queremos que se ejecute en un intervalo pero durante una hora en especifico o en un momento particular podemos usar un espacio después de la magnitud del intervalo para definir el rango y las notaciones anteriores para definir el intervalo de tiempo, por ejemplo, si quisiéramos que fuera cada dos horas entre las 6 a.m y las 12 p.m seria de la siguiente manera:

0 */2 6-12 ? * *

Esta tarea se ejecutará todos los días cada dos horas entre las 6:00 a.m y las 12:00pm. Una vez tengamos este concepto claro podemos proceder a configurar nuestro servicio en C4C7OPS.

2.1 Nos dirigimos a la sección de “Backends” en C4C7OPS:

C4C7OPS home

2.2 Presionamos el botón de “Create”:

C4C7OPS backends

2.3 Completamos los campos:

C4C7OPS create backends

2.4 Configuramos un cron que se ejecute cada tres minutos, todo el día, todos los días y presionamos “Save”.

cron(0/3 * * * ? *)

C4C7OPS create cron expression

3. Desplegar nuestro proyecto.

3.1 Nos dirigimos a Backends de nuevo, buscamos nuestro nuevo servicio y presionamos en “Deploys”.

C4C7OPS backends

3.2 Presionamos create, escribimos un tag o rama y presionamos “Launch”

C4C7OPS crate deploy

3.3 Esperamos que el deploy se termine de ejecutar.

C4C7OPS launch deploy

4. Visualizar que la ejecución sea exitosa, los logs que definamos y ejecutarlo manualmente.

4.1 Buscamos de nuevo nuestro servicio en la sección de backends y presionamos “Executions”.

C4C7OPS cron executions in backends home

4.2 Aquí podemos ver todas las ejecuciones de nuestra tarea, presionamos “Run manually”,veremos que se iniciara una nueva ejecución y presionaremos en su estado para ver el detalle.

C4C7OPS cron executions home

4.3 Aquí veremos los logs de la ejecución.

C4C7OPS cron execution details

5. Para concluir.

Una vez terminado el flujo completo de creación de un servicio de tipo “Schedule task” con una expresión cron configurada para definir los intervalos de ejecución ya sabremos cómo configurar esta valiosa herramienta e integrarla con nuestra consola de C4C7OPS.

Usamos cookies para mejorar su experiencia en nuestro sitio y personalizar el contenido a sus necesidades. Al hacer clic en "Aceptar", usted acepta. Lea nuestra Política de Cookies y nuestra Política de Privacidad y Datos, y nuestros Términos y condiciones para más información.