0Pricing
Go Academy · Ders

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)
}
_ = id

Saniye 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; WithSeconds bir saniye alanı ekler
  • @daily ve @every gibi makrolar yaygın zamanlamaları basitleştirir
  • Denetim ve sınama için Remove, konumlar ve ParseStandard kullanı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

  1. Zamana Dayalı Zamanlama
  2. robfig/cron Kütüphanesi
  3. Aralıklar için Tiklayıcılar
  4. İşleri Zarifçe Durdurma
← Go Academy Sayfasına Dön