La biblioteca robfig/cron
Programe con sintaxis cron
La biblioteca robfig/cron es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.
Expresiones cron en Go
La biblioteca robfig/cron permite programar tareas con la conocida sintaxis cron en lugar de escribir manualmente los cálculos de tiempo. Instálela con go get github.com/robfig/cron/v3.
import "github.com/robfig/cron/v3"Repaso de la sintaxis cron
Una expresión cron estándar tiene cinco campos:
- minuto (0-59)
- hora (0-23)
- día del mes (1-31)
- mes (1-12)
- día de la semana (0-6)
Ejemplo: 0 9 * * 1-5 = las 9:00 de la mañana de lunes a viernes.
Creación de un planificador
cron.New() devuelve un planificador. Añada las tareas y, después, inícielo.
c := cron.New()
c.Start()
defer c.Stop()Añadir una tarea
AddFunc registra una función para ejecutarla según una programación y devuelve un ID de entrada y un error si la especificación no es válida.
id, err := c.AddFunc("30 * * * *", func() {
fmt.Println("runs at minute 30")
})
if err != nil {
log.Fatal(err)
}
_ = idEl campo de los segundos
robfig/cron v3 utiliza de forma predeterminada una especificación de 5 campos (sin segundos). Para habilitar una especificación de 6 campos con segundos, cree el cron con la opción de segundos.
c := cron.New(cron.WithSeconds())
c.AddFunc("*/5 * * * * *", func() { fmt.Println("every 5s") })Programaciones predefinidas
Existen macros prácticas:
@hourly@daily@weekly@every 1h30m
c.AddFunc("@every 1h30m", func() { fmt.Println("every 90 min") })
c.AddFunc("@daily", func() { fmt.Println("midnight") })Eliminar trabajos
Use el EntryID devuelto para eliminar un trabajo dinámicamente.
id, _ := c.AddFunc("@hourly", task)
// later:
c.Remove(id)Los trabajos se ejecutan en goroutines
Cada trabajo programado se ejecuta en su propia goroutine. Si un trabajo puede coincidir con su próxima activación, controle la concurrencia o use un envoltorio que omita las ejecuciones superpuestas.
Zonas horarias
De forma predeterminada, las programaciones usan la hora local de la máquina. Pase una ubicación para hacerlas explícitas y evitar sorpresas por el horario de verano.
loc, _ := time.LoadLocation("America/New_York")
c := cron.New(cron.WithLocation(loc))Analizar sin ejecutar
Puede validar una especificación o calcular la próxima ejecución con un analizador, lo que resulta ideal para las pruebas y para mostrar a los usuarios la próxima ejecución.
sched, _ := cron.ParseStandard("0 9 * * 1-5")
next := sched.Next(time.Now())
fmt.Println("next run:", next)Ejecutable: calcular la próxima ejecución de Cron (analogía)
robfig/cron es externo; este fragmento de la biblioteca estándar modela la regla de cron más sencilla, «cada minuto al inicio del minuto», calculando la próxima hora que coincida.
package main
import (
"fmt"
"time"
)
func nextRun(from time.Time) time.Time {
return from.Truncate(time.Minute).Add(time.Minute)
}
func main() {
now := time.Date(2026, 1, 1, 8, 15, 30, 0, time.UTC)
fmt.Println("now:", now.Format("15:04:05"))
fmt.Println("next:", nextRun(now).Format("15:04:05"))
}Comprobación rápida
Compruebe sus conocimientos sobre la biblioteca robfig/cron.
Resumen
Ha aprendido a usar la biblioteca robfig/cron:
cron.New()+AddFunc(spec, fn)+Start()- La especificación tiene 5 campos de forma predeterminada;
WithSecondsañade un campo para los segundos - Las macros como
@dailyy@everysimplifican las programaciones habituales - Use
Remove, las ubicaciones yParseStandardpara obtener control y realizar pruebas
Aprende Go con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 51
- Lecciones
- 203
Preguntas frecuentes
¿La lección «La biblioteca robfig/cron» es gratis?
Sí — el texto completo de «La biblioteca robfig/cron» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.
¿Qué aprenderé en «La biblioteca robfig/cron»?
Programe con sintaxis cron Practicas Go Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Go Academy?
No se requiere experiencia previa. Go Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «La biblioteca robfig/cron»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Go Academy?
Sí. Cada lección de Go Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Programación basada en el tiempo
- La biblioteca robfig/cron
- Tickers para intervalos
- Cierre ordenado de tareas