La bibliothèque robfig/cron
Planifier avec la syntaxe cron
La bibliothèque robfig/cron est une leçon Go Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Go Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Go Academy comprend 4 leçons au total.
Expressions Cron en Go
La bibliothèque robfig/cron vous permet de planifier des tâches avec la syntaxe Cron habituelle au lieu d'écrire vous-même les calculs horaires. Installez-la avec go get github.com/robfig/cron/v3.
import "github.com/robfig/cron/v3"Rappel de la syntaxe Cron
Une expression Cron standard comporte cinq champs :
- minute (0-59)
- heure (0-23)
- jour du mois (1-31)
- mois (1-12)
- jour de la semaine (0-6)
Exemple : 0 9 * * 1-5 = 9:00 AM les jours ouvrés.
Créer un planificateur
cron.New() renvoie un planificateur. Vous ajoutez des tâches, puis vous le démarrez.
c := cron.New()
c.Start()
defer c.Stop()Ajouter une tâche
AddFunc enregistre une fonction à exécuter selon un calendrier et renvoie un ID d'entrée ainsi qu'une erreur si la spécification n'est pas valide.
id, err := c.AddFunc("30 * * * *", func() {
fmt.Println("runs at minute 30")
})
if err != nil {
log.Fatal(err)
}
_ = idLe champ des secondes
robfig/cron v3 utilise par défaut une spécification à 5 champs, sans secondes. Pour activer une spécification à 6 champs avec les secondes, construisez Cron avec l'option des secondes.
c := cron.New(cron.WithSeconds())
c.AddFunc("*/5 * * * * *", func() { fmt.Println("every 5s") })Planifications prédéfinies
Des raccourcis pratiques existent :
@hourly@daily@weekly@every 1h30m
c.AddFunc("@every 1h30m", func() { fmt.Println("every 90 min") })
c.AddFunc("@daily", func() { fmt.Println("midnight") })Supprimer des tâches
Utilisez le EntryID renvoyé pour supprimer une tâche dynamiquement.
id, _ := c.AddFunc("@hourly", task)
// later:
c.Remove(id)Les tâches s'exécutent dans des gouroutines
Chaque tâche planifiée s'exécute dans sa propre gouroutine. Si une tâche peut chevaucher son prochain déclenchement, gérez la concurrence ou utilisez une fonction enveloppe qui ignore les exécutions qui se chevauchent.
Fuseaux horaires
Par défaut, les planifications utilisent l'heure locale de la machine. Transmettez un emplacement pour les rendre explicites et éviter les surprises liées à DST.
loc, _ := time.LoadLocation("America/New_York")
c := cron.New(cron.WithLocation(loc))Analyser sans exécuter
Vous pouvez valider une spécification ou calculer la prochaine exécution avec un analyseur, ce qui est idéal pour les tests et pour afficher aux utilisateurs la prochaine exécution.
sched, _ := cron.ParseStandard("0 9 * * 1-5")
next := sched.Next(time.Now())
fmt.Println("next run:", next)Exécutable : calculer la prochaine exécution cron (analogie)
robfig/cron est externe ; cet extrait utilisant la bibliothèque standard modélise la règle cron la plus simple, « toutes les minutes à la limite d'une minute », en calculant la prochaine heure correspondante.
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"))
}Vérification rapide
Vérifiez votre compréhension de la bibliothèque robfig/cron.
Récapitulatif
Vous avez découvert la bibliothèque robfig/cron :
cron.New()+AddFunc(spec, fn)+Start()- Une spécification à 5 champs par défaut ;
WithSecondsajoute un champ pour les secondes - Des raccourcis comme
@dailyet@everysimplifient les planifications courantes - Utilisez
Remove, les emplacements etParseStandardpour garder le contrôle et effectuer des tests
Questions Fréquemment Posées
La leçon « La bibliothèque robfig/cron » est-elle gratuite ?
Oui — le texte complet de « La bibliothèque robfig/cron » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Go Academy, passe à CoddyKit PRO. Le cours Go Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « La bibliothèque robfig/cron » ?
Planifier avec la syntaxe cron Tu pratiques Go Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Go Academy ?
Aucune expérience préalable n'est requise. Go Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « La bibliothèque robfig/cron » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Go Academy ?
Oui. Chaque leçon Go Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Planification temporelle
- La bibliothèque robfig/cron
- Tickers pour les intervalles
- Arrêt progressif des tâches