Skip to content

Zamanlanmış Otomasyonlar

Zamanlanmış otomasyonlar, iş öğesi olaylarına yanıt olarak değil, belirtilen zamanlarda çalışır. Periyodik bakım, tekrarlayan raporlar, temizlik görevleri ve zamana duyarlı iş akışları için idealdir. Zamanlanmış bir kural tetiklendiğinde, motor koşullarını projedeki tüm iş öğelerine karşı değerlendirir ve eşleşen her öğede eylemleri yürütür.

Zamanlama tipleri

SetGet, her biri farklı kullanım senaryolarına uygun üç zamanlama tipini destekler.

TipAçıklamaEn uygun olduğu durum
Bir kezBelirli bir tarih ve saatte tek sefer tetiklenirTek seferlik taşımalar, lansman günü görevleri, son tarih hatırlatmaları
AralıkSabit bir aralıkta tekrar tekrar tetiklenirDüzenli sağlık kontrolleri, periyodik durum güncellemeleri
CronBir cron ifadesi zamanlamasında tetiklenirKarmaşık tekrarlayan zamanlamalar, iş saatleri iş akışları

Bir kez: tek seferlik yürütme

Tek seferlik zamanlama, yapılandırılan tarih ve saatte tam olarak bir kez tetiklenir, ardından devre dışı kalır.

Yapılandırma

  1. scheduled tetikleyicisiyle bir kural oluşturun veya düzenleyin.
  2. Zamanlama bölümünde Bir kez seçin.
  3. Tarih seçicisinden tarih seçin.
  4. Zaman seçicisinden saat seçin.
  5. Saat dilimini seçin.
  6. Kuralı kaydedin.

Parametreler

ParametreTipZorunluAçıklama
dateTarihEvetYürütme tarihi (YYYY-MM-DD)
timeSaatEvetYürütme saati (HH:MM, 24 saat formatı)
timezoneSaat dilimiEvetIANA saat dilimi tanımlayıcısı

Yürütme sonrası davranış

Tek seferlik zamanlama tetiklendikten sonra:

  • Kuralın durumu Tamamlandı olarak değişir.
  • Yürütme Yürütme Geçmişi sayfasına kaydedilir.
  • Kural otomasyonlar listesinde görünür kalır ancak tekrar tetiklenmez.
  • Kuralı düzenleyerek ve yeni bir tarih ve saat ayarlayarak yeniden etkinleştirebilirsiniz.

Örnek: lansman günü öncelik yükseltme

15 Nisan 2026 sabah 9:00'da bir ürün lansmanından önce, tüm açık öğeleri yükselt:

  • Tetikleyici: scheduled (bir kez: 2026-04-15 09:00, America/New_York)
  • Koşul: Durum grubu "started" VE öncelik "low" veya "medium"
  • Eylem: change_priority ile "high", add_comment "Lansman günü için öncelik yükseltildi"

Aralık: sabit periyotlarda tekrarlayan

Aralık zamanlamaları sabit bir periyotta tekrar tekrar tetiklenir. Aralık, son yürütme zamanından itibaren ölçülür.

Yapılandırma

  1. scheduled tetikleyicisiyle bir kural oluşturun veya düzenleyin.
  2. Zamanlama bölümünde Aralık seçin.
  3. Aralık değerini girin (pozitif tamsayı).
  4. Açılır menüden aralık birimini seçin.
  5. İlk yürütme hesaplaması için saat dilimini seçin.
  6. Kuralı kaydedin.

Parametreler

ParametreTipZorunluSeçenekler
interval_valueIntegerEvet1 veya daha büyük
interval_unitEnumEvetminutes, hours, days, weeks
timezoneSaat dilimiEvetIANA saat dilimi tanımlayıcısı

Desteklenen aralıklar

BirimMinimumMaksimumÖrnekler
Dakika151440 (24 saat)Her 15 dakikada, her 60 dakikada
Saat1168 (7 gün)Her 1 saatte, her 6 saatte, her 24 saatte
Gün190Her 1 günde, her 7 günde, her 30 günde
Hafta112Her 1 haftada, her 2 haftada, her 4 haftada

UYARI

Minimum aralık 15 dakikadır. Otomasyon motorunda aşırı yük oluşmasıni önlemek için daha kisa aralıklar reddedilir.

Aralık kayması

Aralıklar, sabit bir saat zamanından değil, son yürütmenin tamamlanmasından itibaren ölçülür. Bir yürütme 2 dakika sürerse ve aralık 60 dakika ise, sonraki yürütme öncekinin başlamasından 62 dakika sonra gerçekleşir. Saate hizalanmış zamanlama için bunun yerine cron ifadelerini kullanın.

Örnek: günlük bayat öğe kontrolü

Her 24 saatte bir bayat öğeleri kontrol et:

  • Tetikleyici: scheduled (aralık: 24 saat)
  • Koşul: Durum grubu "started" VE updated_at_age_days 7'den büyük
  • Eylem: add_label "Bayat", atananlara send_notification

Cron: standart cron ifadeleri

Cron zamanlamaları, hassas, saate hizalanmış zamanlama için standart cron ifadelerini kullanır. Bu en esnek zamanlama tipidir.

Yapılandırma

  1. scheduled tetikleyicisiyle bir kural oluşturun veya düzenleyin.
  2. Zamanlama bölümünde Cron seçin.
  3. Metin alanina cron ifadesini girin.
  4. Saat dilimini seçin.
  5. Arayüz önizleme olarak sonraki 5 yürütme zamanını gösterir.
  6. Kuralı kaydedin.

Cron ifade formatı

SetGet standart 5 alanlı cron formatını kullanır:

dakika (0-59)
saat (0-23)
ayin gunu (1-31)
ay (1-12)
haftanin gunu (0-6, Pazar=0)

Cron alan referansı

Alanİzin verilen değerlerÖzel karakterler
Dakika0-59* , - /
Saat0-23* , - /
Ayin günü1-31* , - /
Ay1-12* , - /
Haftanin günü0-6 (Pzr=0)* , - /

Özel karakterler

KarakterAnlamÖrnek
*Herhangi bir değer* * * * * = her dakika
,Değer listesi1,15 * * * * = dakika 1 ve 15
-Aralık9-17 * * * * = saat 9'dan 17'ye
/Adım*/15 * * * * = her 15 dakikada

Yaygın cron ifadeleri

İfadeAçıklama
0 2 * * *Her gün saat 02:00'de
0 9 * * 1Her Pazartesi saat 09:00'da
0 9 * * 1-5Hafta içi her gün saat 09:00'da
0 0 1 * *Her ayın ilk günü gece yarısı
0 */6 * * *Her 6 saatte
30 8 * * 1Her Pazartesi saat 08:30'da
0 17 * * 5Her Cuma saat 17:00'de
0 9,17 * * *Günde iki kez saat 09:00 ve 17:00'de
0 0 15 * *Her ayın 15'inde gece yarısı

Örnek: her gece saat 02:00'de temizlik

30 günden eski tamamlanmış öğeleri her gece arşivle:

  • Tetikleyici: scheduled (cron: 0 2 * * *, saat dilimi: UTC)
  • Koşul: Durum grubu "completed" VE updated_at_age_days 30'dan büyük
  • Eylem: archive

Örnek: her Pazartesi haftalık rapor

Proje yöneticisine bayat öğelerin haftalık raporunu gönder:

  • Tetikleyici: scheduled (cron: 0 9 * * 1, saat dilimi: America/New_York)
  • Koşul: Durum grubu "started" VE updated_at_age_days 7'den büyük
  • Eylem: Proje yöneticisine özet ile send_notification, add_label "Dikkat Gerekli"

Örnek: aylık arşiv

Her ayın ilk gününde iptal edilmiş öğeleri arşivle:

  • Tetikleyici: scheduled (cron: 0 0 1 * *, saat dilimi: Europe/London)
  • Koşul: Durum grubu "cancelled"
  • Eylem: archive

Saat dilimi seçimi

Tüm zamanlama tipleri bir saat dilimi gerektirir. Saat dilimi, zamanlamanın yerel saate göre ne zaman tetikleneceğini belirler.

Saat dilimi seçme

  1. Zamanlama yapılandırmasında Saat Dilimi açılır menüsüne tıklayın.
  2. Saat diliminizi arayın veya göz atın.
  3. IANA saat dilimi tanımlayıcısını seçin (örneğin, America/New_York, Europe/Istanbul, Asia/Tokyo).

Yaz saati uygulaması

SetGet, yaz saati uygulaması (DST) geçişlerini otomatik olarak yönetir. Saatler değiştiğinde:

  • "İleri atla" geçişi sırasında saat 02:00 için ayarlanmış bir zamanlama saat 03:00'te (bir sonraki geçerli zaman) tetiklenir.
  • "Geri al" geçişi sırasında saat 01:30 için ayarlanmış bir zamanlama bir kez tetiklenir (iki kez değil).

Sonraki çalışma hesaplaması

Otomasyon ayarları sayfası, her zamanlanmış kural için sonraki zamanlanmış çalışmayı gösterir. Bu, mevcut zaman, zamanlama yapılandırması ve saat diliminden hesaplanır.

Zamanlama tipiSonraki çalışma hesaplaması
Bir kezGelecekteyse yapılandırılan tarih ve saat
AralıkSon yürütme zamanı + aralık süresi
CronCron ifadesinden sonraki eşleşen zaman

Bir kural durdurulmuşsa, sonraki çalışma alanı bir zaman yerine "Durduruldu" gösterir.

Arka plan zamanlayıcısı

SetGet arka plan zamanlayıcısı, zamanlanmış tetikleyicileri çalıştırmaktan sorumludur.

Nasıl çalışır

  1. Zamanlayıcı, API sunucusunda bir arka plan goroutine'i olarak çalışır.
  2. Her 60 saniyede tüm aktif zamanlanmış kuralları kontrol eder.
  3. Sonraki çalışma zamanı geçmiş her kural için zamanlayıcı tetikleyiciyi çalıştırır.
  4. Kuralın koşulları projedeki tüm eşleşen iş öğelerine karşı değerlendirilir.
  5. Eylemler, koşulları geçen her öğede yürütülür.
  6. Sonraki çalışma zamanı yeniden hesaplanır ve saklanır.

Yürütme garantileri

ÖzellikGaranti
Zamanlama doğruluğuZamanlanan saatin 60 saniyesi içinde
En-az-bir-kez teslimatEvet. Sunucu yeniden başlarsa, kaçırılan zamanlamalar başlangıçta tetiklenir.
Tam-bir-kez teslimatEn iyi çaba. Nadir durumlarda (yürütme sırasında sunucu çökmesi), bir zamanlama iki kez tetiklenebilir. Eylemler idempotent olmalıdır.
Eş zamanlı yürütmeÖnceki yürütmesi hala devam ediyorsa bir kural tekrar tetiklenmez.

İPUCU

Zamanlanmış otomasyon eylemlerini idempotent olacak şekilde tasarlayın. Örneğin, "mevcut değilse etiket ekle" birden fazla kez çalıştırmak için güvenlidir, "etiket değiştir" ise değildir.

Zamanlanmış kuralları izleme

Zamanlanmış kuralların durumunu ve geçmişini incelemek için:

  1. Projede Ayarlar > Otomasyonlar bölümüne gidin.
  2. Kural listesini tetikleyici tipi Zamanlanmış olarak filtreleyin.
  3. Her kural zamanlama yapılandırmasını, sonraki çalışma zamanını ve son yürütme durumunu gösterir.
  4. Tüm Yürütme Geçmişi sayfasını görüntülemek için bir kurala tıklayın.

İlgili sayfalar