robfig/cron Kütüphanesi
cron söz dizimiyle zamanlayın
robfig/cron Kütüphanesi, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.
Go'da Cron İfadeleri
robfig/cron kitaplığı, elle yazılmış zaman hesapları yerine tanıdık cron söz dizimiyle işler zamanlamanızı sağlar. go get github.com/robfig/cron/v3 komutuyla kurulur.
import "github.com/robfig/cron/v3"Cron Söz Dizimine Kısa Bir Bakış
Standart bir cron ifadesi beş alana sahiptir:
- dakika (0-59)
- saat (0-23)
- ayın günü (1-31)
- ay (1-12)
- haftanın günü (0-6)
Örnek: 0 9 * * 1-5 = hafta içi günlerinde sabah 9:00.
Zamanlayıcı Oluşturma
cron.New() bir zamanlayıcı döndürür. İşleri ekledikten sonra zamanlayıcıyı başlatırsınız.
c := cron.New()
c.Start()
defer c.Stop()İş Ekleme
AddFunc, bir işlevin belirli bir zamanlamaya göre çalıştırılmasını kaydeder; belirtim geçersizse bir giriş kimliği ve hata döndürür.
id, err := c.AddFunc("30 * * * *", func() {
fmt.Println("runs at minute 30")
})
if err != nil {
log.Fatal(err)
}
_ = idSaniye Alanı
robfig/cron v3, varsayılan olarak 5 alanlı bir belirtim kullanır (saniye yoktur). Saniyeleri içeren 6 alanlı bir belirtimi etkinleştirmek için cron'u saniye seçeneğiyle oluşturunuz.
c := cron.New(cron.WithSeconds())
c.AddFunc("*/5 * * * * *", func() { fmt.Println("every 5s") })Önceden Tanımlanmış Zamanlamalar
Kullanışlı makrolar mevcuttur:
@hourly@daily@weekly@every 1h30m
c.AddFunc("@every 1h30m", func() { fmt.Println("every 90 min") })
c.AddFunc("@daily", func() { fmt.Println("midnight") })İşleri Kaldırma
Bir işi dinamik olarak kaldırmak için döndürülen EntryID değerini kullanın.
id, _ := c.AddFunc("@hourly", task)
// later:
c.Remove(id)İşler Gorutinlerde Çalışır
Her zamanlanmış iş kendi gorutininde çalışır. Bir iş bir sonraki tetiklenmesiyle çakışabilecekse, eşzamanlılığa karşı önlem alın veya çakışan çalışmaları atlayan bir sarmalayıcı kullanın.
Saat Dilimleri
Varsayılan olarak zamanlamalar makinenin yerel saatini kullanır. Saat dilimlerini açıkça belirtmek ve DST sürprizlerinden kaçınmak için bir konum iletin.
loc, _ := time.LoadLocation("America/New_York")
c := cron.New(cron.WithLocation(loc))Çalıştırmadan Ayrıştırma
Bir belirtimi doğrulayabilir veya bir ayrıştırıcıyla bir sonraki çalışmayı hesaplayabilirsiniz; bu, sınamalar ve kullanıcılara bir sonraki yürütmeyi göstermek için harikadır.
sched, _ := cron.ParseStandard("0 9 * * 1-5")
next := sched.Next(time.Now())
fmt.Println("next run:", next)Çalıştırılabilir: Son Cron Çalışmasını Hesaplama (Benzetim)
robfig/cron harici bir bağımlılıktır; bu standart kitaplık kod parçacığı, bir sonraki eşleşen zamanı hesaplayarak en basit cron kuralı olan "her dakika, dakika başlangıcında" kuralını modeller.
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"))
}Kısa Sınama
robfig/cron kitaplığı hakkındaki anlayışınızı sınayın.
Özet
robfig/cron kitaplığını öğrendiniz:
cron.New()+AddFunc(spec, fn)+Start()- Varsayılan olarak 5 alanlı belirtim;
WithSecondsbir saniye alanı ekler @dailyve@everygibi makrolar yaygın zamanlamaları basitleştirir- Denetim ve sınama için
Remove, konumlar veParseStandardkullanılır
Sıkça Sorulan Sorular
“robfig/cron Kütüphanesi” dersi ücretsiz mi?
Evet — “robfig/cron Kütüphanesi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.
“robfig/cron Kütüphanesi” dersinde ne öğreneceğim?
cron söz dizimiyle zamanlayın Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Go Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“robfig/cron Kütüphanesi” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Zamana Dayalı Zamanlama
- robfig/cron Kütüphanesi
- Aralıklar için Tiklayıcılar
- İşleri Zarifçe Durdurma