Biblioteka robfig/cron
Planuj zadania za pomocą składni cron
Biblioteka robfig/cron to bezpłatna lekcja Go Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Go Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Go Academy zawiera 4 lekcji w sumie.
Wyrażenia cron w języku Go
Biblioteka robfig/cron pozwala planować zadania za pomocą znanej składni cron zamiast ręcznego obliczania czasu. Należy ją zainstalować poleceniem go get github.com/robfig/cron/v3.
import "github.com/robfig/cron/v3"Powtórzenie składni cron
Standardowe wyrażenie cron ma pięć pól:
- minuta (0-59)
- godzina (0-23)
- dzień miesiąca (1-31)
- miesiąc (1-12)
- dzień tygodnia (0-6)
Przykład: 0 9 * * 1-5 = 9:00 rano w dni robocze.
Tworzenie harmonogramatora
cron.New() zwraca harmonogramator. Następnie należy dodać zadania i go uruchomić.
c := cron.New()
c.Start()
defer c.Stop()Dodawanie zadania
AddFunc rejestruje funkcję, która ma być uruchamiana zgodnie z harmonogramem, zwracając identyfikator wpisu oraz błąd, jeśli specyfikacja jest nieprawidłowa.
id, err := c.AddFunc("30 * * * *", func() {
fmt.Println("runs at minute 30")
})
if err != nil {
log.Fatal(err)
}
_ = idPole sekund
robfig/cron v3 domyślnie używa specyfikacji pięciopolowej (bez sekund). Aby włączyć specyfikację sześciopolową z sekundami, należy utworzyć cron z opcją sekund.
c := cron.New(cron.WithSeconds())
c.AddFunc("*/5 * * * * *", func() { fmt.Println("every 5s") })Wstępnie zdefiniowane harmonogramy
Dostępne są wygodne makra:
@hourly@daily@weekly@every 1h30m
c.AddFunc("@every 1h30m", func() { fmt.Println("every 90 min") })
c.AddFunc("@daily", func() { fmt.Println("midnight") })Usuwanie zadań
Do dynamicznego usunięcia zadania należy użyć zwróconego identyfikatora EntryID.
id, _ := c.AddFunc("@hourly", task)
// later:
c.Remove(id)Zadania są uruchamiane w goroutines
Każde zaplanowane zadanie jest uruchamiane we własnej goroutine. Jeśli zadanie może nakładać się na swoje kolejne uruchomienie, należy zabezpieczyć je przed współbieżnością albo użyć wrappera pomijającego nakładające się uruchomienia.
Strefy czasowe
Domyślnie harmonogramy korzystają z lokalnego czasu komputera. Należy przekazać lokalizację, aby określić ją jawnie i uniknąć niespodzianek związanych ze zmianą czasu.
loc, _ := time.LoadLocation("America/New_York")
c := cron.New(cron.WithLocation(loc))Parsowanie bez uruchamiania
Za pomocą parsera można zweryfikować specyfikację albo obliczyć następne uruchomienie, co świetnie sprawdza się w testach i przy pokazywaniu użytkownikom kolejnego wykonania.
sched, _ := cron.ParseStandard("0 9 * * 1-5")
next := sched.Next(time.Now())
fmt.Println("next run:", next)Program do uruchomienia: obliczanie następnego uruchomienia crona (analogia)
robfig/cron jest biblioteką zewnętrzną; ten fragment korzystający wyłącznie ze standardowej biblioteki modeluje najprostszą regułę crona — „co minutę na początku minuty” — obliczając następny pasujący czas.
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"))
}Szybkie sprawdzenie
Proszę sprawdzić zrozumienie biblioteki robfig/cron.
Podsumowanie
Opanowano korzystanie z biblioteki robfig/cron:
cron.New()+AddFunc(spec, fn)+Start()- Domyślnie specyfikacja ma 5 pól;
WithSecondsdodaje pole sekund - Makra takie jak
@dailyi@everyupraszczają popularne harmonogramy - Do sterowania i testowania służą
Remove, lokalizacje orazParseStandard
Często zadawane pytania
Czy lekcja „Biblioteka robfig/cron” jest bezpłatna?
Tak — pełny tekst „Biblioteka robfig/cron” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Go Academy, przejdź na CoddyKit PRO. Kurs Go Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Biblioteka robfig/cron”?
Planuj zadania za pomocą składni cron Ćwiczysz Go Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Go Academy?
Nie wymagamy żadnego doświadczenia. Go Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Biblioteka robfig/cron”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Go Academy?
Tak. Każda lekcja Go Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Planowanie oparte na czasie
- Biblioteka robfig/cron
- Tickery do obsługi interwałów
- Kontrolowane zatrzymywanie zadań