Demostración de cron en Go - Múltiples rutinas ejecutándose en paralelo

Ejemplos e implementación del paquete cron para Golang (Go)

Hoy vengo a mostrar cómo usar el maravilloso paquete de cron para Go. Ya todos sabemos qué es cron, que en términos simples permite ejecutar acciones cada determinado tiempo.

Pues bien, hoy veremos cómo usar el cron pero directamente programado en Go; sin ninguna dependencia más que del paquete y del propio lenguaje. Veremos algunos ejemplos.

Demostración de cron en Go - Múltiples rutinas ejecutándose en paralelo
Demostración de cron en Go – Múltiples rutinas ejecutándose en paralelo

Nota: si no sabes qué es cron, mira la wikipedia.

Instalar paquete de cron en Go

Primero instala y configura Go (si estás en Linux mira esto) y luego instala el paquete que se encuentra en github.com/robfig/cron con el siguiente comando:

go get github.com/robfig/cron

Espera a que termine y ya estamos preparados. Recuerda que para importar se usa:

import "github.com/robfig/cron"

Primer vistazo al cron de Go

Se crea un nuevo “cron” con:

c := cron.New()

Después, se pueden agregar funciones que se van a ejecutar cuando indiquemos; para esto se llama a c.AddFunc. Como primer argumento se le pasa la  expresión cron y como segundo una función.

Ya veremos los ejemplos más abajo. Por cierto, una vez que ya hemos agregado todas las tareas, para iniciar el cron se llama a:

c.Start()

Para detenerlas o detener el cron se llama a:

c.Stop()

Finalmente, es posible agregar tareas incluso después de llamar a Start, no hay problema con ello.

Por cierto, aquí está la documentación oficial.

Ejemplos simple de cron con Go

Aquí está un ejemplo sencillo y rápido que funciona como referencia:

Si lo compilas y/o ejecutas, en la consola se estará imprimiendo el mensaje cada segundo; pero eso no es todo, hay magia detrás de ello.

Eso que estás viendo se está ejecutando en otro hilo, y si agregaras más funciones entonces todas se ejecutarían en paralelo; dejando el código principal intacto.

Además, esto fue para ejemplos rápidos, pero todos sabemos que cron podría ejecutar determinada acción cada mes, año, todos los martes, todos los miércoles de enero del 2020 y miles de combinaciones más.

Ejemplos de uso de cron y Go

Una vez que ya vimos el ejemplo básico, veamos uno más avanzado que tendrá la salida de la imagen de portada (la del inicio):

En el ejemplo usamos a cron para agregar múltiples tareas; aquí la concurrencia no importa tanto, sino la ejecución puntual de las tareas. Es decir, cron funciona de maravilla.

Conclusiones

Cabe mencionar que se pueden agregar infinitas tareas y que el select{} al final solamente funciona para pausar el programa; pero no sería necesario para programas como el del servidor web.

Por cierto, esta implementación de cron en Go utiliza hasta segundos como medida más precisa; y el estándar en Linux utiliza minutos. En resumen, se podría decir que este cron tiene mayor granularidad.

¿Te confundes al trabajar con cron? yo también, pero siempre recurro a esta página para guiarme; eso sí, la página no maneja segundos pero no importa; pues sirve como guía.

Como siempre, te invito a ver más tutoriales de Go.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario