De robfig/cron-bibliotheek
Plan met cron-syntaxis
De robfig/cron-bibliotheek is een gratis Go Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Go Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Go Academy bevat in totaal 4 lessen.
Cron-expressies in Go
Met de bibliotheek robfig/cron kun je taken plannen met de vertrouwde cronsyntaxis, in plaats van zelf tijdsberekeningen te schrijven. Installeer de bibliotheek met go get github.com/robfig/cron/v3.
import "github.com/robfig/cron/v3"Opfrisser van de cronsyntaxis
Een standaard cron-expressie heeft vijf velden:
- minuut (0-59)
- uur (0-23)
- dag van de maand (1-31)
- maand (1-12)
- dag van de week (0-6)
Voorbeeld: 0 9 * * 1-5 = 9:00 uur op werkdagen.
Een planner maken
cron.New() geeft een planner terug. Je voegt taken toe en start de planner vervolgens.
c := cron.New()
c.Start()
defer c.Stop()Een taak toevoegen
AddFunc registreert een functie die volgens een schema wordt uitgevoerd. De functie geeft een item-ID terug en een fout als de specificatie ongeldig is.
id, err := c.AddFunc("30 * * * *", func() {
fmt.Println("runs at minute 30")
})
if err != nil {
log.Fatal(err)
}
_ = idHet secondenveld
robfig/cron v3 gebruikt standaard een specificatie met vijf velden, dus zonder seconden. Als je een specificatie met zes velden en seconden wilt gebruiken, maak je de cron aan met de optie voor seconden.
c := cron.New(cron.WithSeconds())
c.AddFunc("*/5 * * * * *", func() { fmt.Println("every 5s") })Vooraf gedefinieerde schema's
Er zijn handige macro's:
@hourly@daily@weekly@every 1h30m
c.AddFunc("@every 1h30m", func() { fmt.Println("every 90 min") })
c.AddFunc("@daily", func() { fmt.Println("midnight") })Taken verwijderen
Gebruik de geretourneerde EntryID om dynamisch een taak te verwijderen.
id, _ := c.AddFunc("@hourly", task)
// later:
c.Remove(id)Taken worden in goroutines uitgevoerd
Elke geplande taak wordt in een eigen goroutine uitgevoerd. Als een taak kan overlappen met de volgende activering, bescherm je dan tegen gelijktijdige uitvoering of gebruik een wrapper die overlappende uitvoeringen overslaat.
Tijdzones
Standaard gebruiken schema's de lokale tijd van de machine. Geef een locatie door om de tijdzone expliciet te maken en verrassingen door zomertijd te voorkomen.
loc, _ := time.LoadLocation("America/New_York")
c := cron.New(cron.WithLocation(loc))Parseren zonder uitvoeren
Je kunt een specificatie valideren of met een parser de volgende uitvoering berekenen. Dat is handig voor testen en om gebruikers de volgende uitvoering te tonen.
sched, _ := cron.ParseStandard("0 9 * * 1-5")
next := sched.Next(time.Now())
fmt.Println("next run:", next)Uitvoerbaar: de volgende cron-uitvoering berekenen (analogie)
robfig/cron is extern; dit fragment uit de standaardbibliotheek modelleert de eenvoudigste cron-regel "elke minuut op de minuutgrens" door het volgende overeenkomende tijdstip te berekenen.
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"))
}Korte controle
Toets je begrip van de bibliotheek robfig/cron.
Samenvatting
Je hebt de bibliotheek robfig/cron geleerd:
cron.New()+AddFunc(spec, fn)+Start()- Standaard een specificatie met vijf velden;
WithSecondsvoegt een secondenveld toe - Macro's zoals
@dailyen@everymaken veelvoorkomende schema's eenvoudiger - Gebruik
Remove, locaties enParseStandardvoor beheer en testen
Leer Go met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 51
- Lessen
- 203
Veelgestelde vragen
Is de les “De robfig/cron-bibliotheek” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Go Academy, waaronder “De robfig/cron-bibliotheek”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Go Academy bevat in totaal 4 lessen.
Wat leer ik in “De robfig/cron-bibliotheek”?
Plan met cron-syntaxis Je oefent met Go Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Go Academy te beginnen?
Ervaring vooraf is niet nodig. Go Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “De robfig/cron-bibliotheek”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Go Academy?
Ja. Elke les over Go Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Tijdgestuurd plannen
- De robfig/cron-bibliotheek
- Tickers voor intervallen
- Taken netjes afsluiten