Ana içeriğe geç

Ücretsiz Cron İfadesi Oluşturucu

Zamanlanmış görevler için cron ifadeleri oluşturun, doğrulayın ve açıklayın. Canlı düz dil açıklaması, sonraki 5 çalışma önizlemesi ve yaygın desen ön ayarları.

Yüklendikten sonra çevrimdışı çalışır
dakika
(0-59)
saat
(0-23)
gün
(1-31)
ay
(1-12)
haftanın günü
(0-7)

Açıklama

09:00'de, Pazartesi ile Cuma arası.

Sık kullanılan desenler

Standart Unix cron, GitHub Actions, Kubernetes CronJob ve çoğu zamanlama sistemiyle uyumludur. * 'her' anlamına gelir, */5 'her 5' demektir, 1-5 aralık, 1,15 ise belirli değerlerdir. Ayrıca @hourly, @daily, @weekly, @monthly, @yearly ve MON-FRI veya JAN-DEC gibi adları kabul eder.

Yaygın kullanımlar

  • GitHub Actions İş Akışları için Cron OluşturGitHub Actions zamanlanmış iş akışları için cron söz dizimini kullanır. Programını buradan oluştur ve doğrula.
  • Kubernetes CronJob'lar için Cron OluşturKubernetes CronJob kaynakları standart cron söz dizimini kullanır. İfadeyi görsel olarak oluştur ve açıkla.
  • Linux crontab için Cron Girişleri OluşturGeleneksel Unix cron (cron, crontab -e) için güvenle ifadeler oluştur.
  • Veritabanı Bakım İşlerini PlanlaCron ifadeleri kullanarak yedekleme, vakum veya analiz işlerini güvenle planla.
  • Cron İfadeleri Nasıl Çalışır ÖğrenHer değişiklik anında düz İngilizce açıklaması ve sonraki 5 çalışmanın önizlemesini gösterir — cron öğrenmenin en iyi yolu.

Nasıl çalışır

Cron ifadesi oluşturucu, lib/cron.ts içindeki elle yazılmış bir ayrıştırıcı kullanılarak tamamen tarayıcınızda çalışır — harici kütüphane yok, sunucu çağrısı yok. İfadeyi doğrular, yerel ayara uygun gün ve ay adları için tarayıcının yerleşik Intl.DateTimeFormat ve Intl.ListFormat API'lerini kullanarak sade bir açıklama oluşturur ve her dakikayı kaba kuvvetle denemek yerine alan atlama mantığıyla zamanda ileri giderek sonraki planlanmış çalışma zamanlarını hesaplar.

  1. 1
    İfade alan alan ayrıştırılır
    Ayrıştırıcı ifadeyi boşlukla ayrılmış beş (veya altı) alana böler ve her birini virgüller, aralıklar (ör. 1-5), adım gösterimi (ör. */15) ve MON veya JAN gibi adlandırılmış değerler için öğelere ayırır. @daily gibi @makrolar ayrıştırma başlamadan önce beş alanlı karşılıklarına genişletilir. Geçersiz değerler veya aralık dışı sayılar, yerelleştirilmiş mesajlara eşlenen türlü hata anahtarları olarak ortaya çıkar.
  2. 2
    İnsan tarafından okunabilir açıklama oluşturulur
    lib/cron.ts içindeki describeCron(), hangi alanların joker, hangilerinin açık küme olduğunu inceleyerek İngilizce (veya yerelleştirilmiş) cümleyi oluşturur. Gün ve ay adları etkin yerel ayarla Intl.DateTimeFormat üzerinden çözülür ve liste öğeleri Intl.ListFormat ile birleştirilir; böylece bağlaç ('ve', ',' veya dile özgü biçim) kullanıcının diline uyar.
  3. 3
    Sonraki çalışma zamanları alan atlamayla hesaplanır
    nextRuns() bir Date nesnesini şimdiki andan ileriye doğru ilerletir, ancak her dakikayı test etmek yerine eşleşemeyecek ayları, günleri veya saatleri tamamen atlar. Bu, 30 Şubat gibi imkânsız bir zamanlamanın 2,6 milyon kez döngüye girmek yerine beş yıllık bir ufuk denetimiyle hızla sonlanması demektir.
  4. 4
    İfade URL fragment'ı ile paylaşılır
    Yazdığınız her ifade sayfanın URL fragment'ına #expr= olarak yazılır (window.history.replaceState ile 500 ms gecikmeli). Fragment asla sunucuya gönderilmez; sayfa yüklenirken ondan beslenir; böylece bir URL'yi paylaşmak veya yer imlerine eklemek, hiçbir sunucu durumu olmadan tam ifadeyi geri yükler.

İlgili araçlar

Sık sorulan sorular