Pustaka robfig/cron
Jadwalkan dengan sintaks cron
Pustaka robfig/cron adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
Ekspresi Cron di Go
Pustaka robfig/cron memungkinkan Anda menjadwalkan pekerjaan dengan sintaks cron yang umum, bukan perhitungan waktu yang ditulis secara manual. Instal dengan go get github.com/robfig/cron/v3.
import "github.com/robfig/cron/v3"Penyegaran Sintaks Cron
Ekspresi cron standar memiliki lima field:
- menit (0-59)
- jam (0-23)
- hari dalam bulan (1-31)
- bulan (1-12)
- hari dalam minggu (0-6)
Contoh: 0 9 * * 1-5 = pukul 9:00 AM pada hari kerja.
Membuat Penjadwal
cron.New() mengembalikan sebuah penjadwal. Anda menambahkan pekerjaan, lalu memulainya.
c := cron.New()
c.Start()
defer c.Stop()Menambahkan Pekerjaan
AddFunc mendaftarkan sebuah fungsi untuk dijalankan sesuai jadwal, lalu mengembalikan ID entri dan kesalahan jika spesifikasinya tidak valid.
id, err := c.AddFunc("30 * * * *", func() {
fmt.Println("runs at minute 30")
})
if err != nil {
log.Fatal(err)
}
_ = idField Detik
robfig/cron v3 secara bawaan menggunakan spesifikasi 5 field (tanpa detik). Untuk mengaktifkan spesifikasi 6 field dengan detik, buat cron dengan opsi detik.
c := cron.New(cron.WithSeconds())
c.AddFunc("*/5 * * * * *", func() { fmt.Println("every 5s") })Jadwal yang Telah Ditentukan Sebelumnya
Tersedia makro yang praktis:
@hourly@daily@weekly@every 1h30m
c.AddFunc("@every 1h30m", func() { fmt.Println("every 90 min") })
c.AddFunc("@daily", func() { fmt.Println("midnight") })Menghapus Pekerjaan
Gunakan EntryID yang dikembalikan untuk menghapus pekerjaan secara dinamis.
id, _ := c.AddFunc("@hourly", task)
// later:
c.Remove(id)Pekerjaan Berjalan dalam Gorutin
Setiap pekerjaan terjadwal berjalan dalam gorutinnya sendiri. Jika sebuah pekerjaan dapat tumpang tindih dengan pemicu berikutnya, lindungi dari konkurensi atau gunakan pembungkus yang melewati eksekusi yang tumpang tindih.
Zona Waktu
Secara bawaan, jadwal menggunakan waktu lokal mesin. Teruskan lokasi agar jadwal menjadi eksplisit dan menghindari kejutan akibat DST.
loc, _ := time.LoadLocation("America/New_York")
c := cron.New(cron.WithLocation(loc))Mengurai Tanpa Menjalankan
Anda dapat memvalidasi spesifikasi atau menghitung eksekusi berikutnya dengan pengurai, yang sangat berguna untuk pengujian dan untuk menampilkan eksekusi berikutnya kepada pengguna.
sched, _ := cron.ParseStandard("0 9 * * 1-5")
next := sched.Next(time.Now())
fmt.Println("next run:", next)Dapat Dijalankan: Menghitung Eksekusi Cron Berikutnya (Analogi)
robfig/cron adalah pustaka eksternal; cuplikan pustaka standar ini memodelkan aturan cron paling sederhana, yaitu "setiap menit tepat pada batas menit", dengan menghitung waktu berikutnya yang cocok.
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"))
}Pemeriksaan Singkat
Uji pemahaman Anda tentang pustaka robfig/cron.
Ringkasan
Anda telah mempelajari pustaka robfig/cron:
cron.New()+AddFunc(spec, fn)+Start()- Spesifikasi 5 bidang secara bawaan;
WithSecondsmenambahkan bidang detik - Makro seperti
@dailydan@everymenyederhanakan jadwal umum - Gunakan
Remove, lokasi, danParseStandarduntuk pengendalian dan pengujian
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pustaka robfig/cron” gratis?
Ya — teks lengkap “Pustaka robfig/cron” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pustaka robfig/cron”?
Jadwalkan dengan sintaks cron Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Pustaka robfig/cron” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Penjadwalan Berbasis Waktu
- Pustaka robfig/cron
- Ticker untuk Interval
- Penghentian Job yang Mulus