Cron ifadesi nasıl doğrulanır ve sonraki çalışma zamanları nasıl bulunur?
Beş alanlı cron ifadenizi doğrulayın; hesaplama başarılıysa mevcut UTC zamanından sonraki beş çalışma zamanını görün. Sonuçlar UTC belirtilen ISO biçimli tarih-saat değerleri olarak döner.
Cron zamanlamasının yapısını anlayın
Cron ifadesi, tekrarlanan görevlerin hangi zamanlarda çalışacağını beş alanda tanımlar. Bu araç, beş alanlı ifadenin sözdizimini doğrular ve hesaplama başarılı olduğunda mevcut UTC zamanından sonraki beş çalışma zamanını hesaplar. Böylece bir zamanlamanın alan sırasına uygun olup olmadığını ve beklenen takvim oluşumlarını kontrol edebilirsiniz.
İfadeyi değerlendirirken yalnızca karakterleri değil, alanların görevini de dikkate alın. İlk alan dakika, ikinci alan saat, üçüncü alan ayın günü, dördüncü alan ay, beşinci alan ise haftanın günüdür. Bu sıra, bir ifadenin nasıl okunacağını belirler; aynı değerleri başka bir sıraya taşımak farklı bir zamanlama anlamına gelir.
İfadeyi gönderin ve oluşumları inceleyin
-
İfadeyi giriş kontrolüne yazın. Önce aralarında boşluk bulunan beş alanınız olduğunu sayın. Araç beş boşlukla ayrılmış alan bekler; alan sayısı bunun dışında kaldığında hesaplama başlamadan başarısızlık döner. Bu nedenle altı alanlı ifadeler veya başka cron lehçelerine özgü ek alanlar için destek varsaymayın.
-
Alanların sırasını inceleyin. Birinci konum dakika, ikinci konum saat, üçüncü konum ayın günü, dördüncü konum ay ve beşinci konum haftanın günüdür. Her alandaki sayı, aralık ya da anahtarın anlamını bu konuma göre değerlendirin; aynı ifade parçalarının yerini değiştirmek sonucu değiştirebilir.
-
Boşluk kullanımını kontrol edin, fakat art arda gelen boşluklar konusunda ölçülü olun. Doğrulama öncesinde boşluk dizileri tek boşluk olarak normalleştirilir ve baştaki veya sondaki boşluklar kaldırılır. Bu işlem, yalnızca boşluk biçiminden kaynaklanan farkları giderir; alan sayısını değiştiren ya da değerleri bozan bir yazım sorununun yerini tutmaz.
-
Bir ifade vermek istemiyorsanız boş gönderimin davranışını hesaba katın. Giriş sağlanmadığında
*/5 * * * *varsayılanı kullanılır. Bu beş alanlı ifade, dakika alanındaki adım nedeniyle beş dakikada bir gerçekleşen bir zamanlamayı temsil eder. -
Doğrulama ve hesaplama işlemini çalıştırın. Arama, kesirli saniyeleri kaldırılmış mevcut UTC zamanından başlar. Başarı durumunda araç, bundan sonra gelen beş takvim oluşumunu UTC zaman dilimini belirten ISO biçimli tarih-saat dizeleri olarak döndürür.
-
Dönen değerleri ifadenin alanlarıyla karşılaştırın. Dakika ve saat beklediğiniz konumda mı, tarih kısıtı doğru ayı veya günü mü gösteriyor, haftanın günü alanı hedeflediğiniz koşulla uyuşuyor mu diye bakın. Hem ayın günü hem de haftanın günü kısıtlanmışsa iki koşulun birlikte sağlanması aranmaz; eşleşme OR mantığıyla değerlendirilir.
-
Başarısızlıkta ifadeyi parçalara ayırarak yeniden inceleyin. Beş alan sınırını, alan sırasını, yazılan değerleri ve tarih ile anahtar biçimlerini ayrı ayrı kontrol edin. Ardından zamanlamanın yaklaşan bir oluşum üretip üretmediğini değerlendirin; geçerli sözdizimi tek başına başarılı sonuç için yeterli olmayabilir.
Başarı ve başarısızlık sonuçlarını okuyun
Başarılı sonuç, ifadenin kabul edildiğini ve arama başlangıcından sonra beş takvim oluşumunun bulunduğunu gösterir. Tarih-saat dizilerindeki UTC bilgisini koruyarak değerleri okuyun; bunlar yerel saat diliminize çevrilmiş gösterimler değildir. Aramanın başlangıç anı kesirli saniyelerden arındırıldığı için, özellikle dakikaya yakın kontrollerde bu referansı göz önünde bulundurun.
Bir ifadenin takvimi seyrek olabilir. Arama, iki oluşum arasındaki süre on yılı aşacak şekilde uzadığında başarısız olabilir; bu durum ifadenin sözdizimi geçerli olsa bile ortaya çıkabilir. Bu sınır, sonuçların gelecekteki her olası tarihi kapsadığı anlamına gelmez.
Başarısız sonuç alan sayısının yanlış olduğunu tek başına kanıtlamaz. Sözdizimi, tarih, değer veya anahtar ayrıştırması sırasında ele alınan bir hata da aynı genel sonuca yol açabilir. Bu yüzden önce alanları ve değerleri doğrulayın, sonra yaklaşan eşleşmenin arama süresi içinde bulunup bulunamayacağını değerlendirin.
Ayın günü ile haftanın günü birlikte sınırlandırılmış bir ifadeyi yorumlarken AND varsayımı yapmayın. Bu iki kısıtın OR mantığıyla ele alınması, beklenenden daha fazla takvim oluşumu üretebilir; dönen beş tarihi bu kurala göre karşılaştırmak gerekir.
Uygulamalı örnek
Bir görev sahibi, aylık bakımın her ayın ilk günü gece yarısında planlandığını kontrol etmek için 0 0 1 * * ifadesini inceler.
Bir cron doğrulama kontrolüne 0 0 1 * * ifadesini gönderin ve dönen beş tarih-saat değerinde günün, saatin ve UTC bilgisinin ifadenin alanlarıyla uyuşup uyuşmadığını inceleyin.
Başarılı sonuçta 0 0 1 * * için her ayın ilk günü gece yarısını gösteren, UTC zaman dilimi belirtilmiş beş ISO biçimli tarih-saat değeri beklenir; yaklaşan eşleşme on yıllık sınırda bulunmazsa sonuç başarısız olabilir.
Sınırlamalar
- Araç beş alanlı ifadeleri değerlendirir ve yaklaşan eşleşme aramasını on yıllık sınırla kısıtlar; bu sınır içinde oluşum bulunmazsa ifade sözdizimsel olarak geçerli olsa da başarı sonucu oluşmaz.
Sık yapılan hatalar
- Alanları dakika, saat, ayın günü, ay ve haftanın günü sırasından farklı dizmek veya altı alan göndermek başarısızlığa neden olabilir. İfadeyi beş alana ayırın ve her parçayı konumuna göre yeniden kontrol edin.
Sık sorulan sorular
Cron ifadesi girmezsem ne olur?
Giriş boş bırakıldığında */5 * * * * varsayılanı kullanılır. Bu ifade, dakika alanındaki adım sayesinde beş dakikada bir çalışan bir zamanlamayı belirtir.
Geçerli bir cron ifadesi yine de başarısız olabilir mi?
Evet, sözdizimi geçerli olsa bile yaklaşan eşleşme on yıllık arama sınırı içinde bulunmadığında işlem başarısız olabilir. Ayrıca ele alınan bir sözdizimi, tarih, değer veya anahtar ayrıştırma hatası da başarısız sonuç verebilir.
Ayın günü ve haftanın günü birlikte nasıl değerlendirilir?
Ayın günü ve haftanın günü kısıtları birlikte yazıldığında OR mantığı uygulanır. Bu nedenle bir oluşumun iki koşulu aynı anda karşılaması zorunlu değildir.