* * * * * cron ifadesi bir işi her dakika çalıştırır. Dakikada bir cron ne zaman mantıklıdır, çakışan çalıştırmalar nasıl önlenir, alternatifleri nelerdir.
⏰Every minute
*Herhangi bir değer,Liste ayracı-Aralık/Adım1-51 ile 5 arası*/15Her 15 birimde* * * * * cron ifadesi her dakika başında çalışır: 00:00, 00:01, 00:02 ve böyle devam eder, saatte 60 kez, günde 1440 kez. Herhangi bir cron alanındaki *, “bu alandaki her geçerli değer” anlamına gelir. Beş alanın tümü * olarak ayarlandığında filtre yoktur: iş mümkün olan her zaman sınırında çalışır.
Bu, cron’un desteklediği maksimum frekanstır. Dakika alanı cron’un en ince ayrıntı düzeyidir, bu nedenle * * * * * cron’un alabileceği en hızlı değerdir.
Bazı sistemler, bir iş kuyruğunu boşaltan bir işçiyi başlatmak için cron kullanır. İşler sürekli geliyorsa ve gecikme önemliyse, dakikada bir tetikleyici kuyruğun uzun süre boş kalmamasını sağlar.
Kalıcı bir izleme aracısı kuramıyorsanız, bir sağlık kontrolü noktasını kontrol eden veya bir metrik kaydeden dakikada bir cron, pragmatik bir geçici çözümdür. 60 saniye içinde oluşan ve düzelen hataları yakalamaz, ancak kritik bir hizmet için her 5 dakikada bir yoklamaktan iyidir.
Her dakika bir dosyaya veya veritabanına Unix zamanı yazmak yaygın bir canlılık kontrolüdür.
Rapor oluşturma, veri senkronizasyonu veya bildirim gönderme gibi işler için kullanıcıların gerçekten her dakika güncellemeye ihtiyacı olup olmadığını sorgulayın.
Veritabanına bağlanan, yapılandırmayı uzak kaynaktan yükleyen veya harici API’ye kimlik doğrulaması yapan bir iş, bu maliyeti günde 1440 kez öder.
Standart cron, önceki çalıştırmanın hala devam edip etmediğini bilmez. İş 90 saniye sürerse, 2. dakikada aynı anda çalışan iki örneğiniz olur.
Her dakika cron işi için, çalıştırma süresi 60 saniyeyi aştığında ne olacağını test edin. Standart çözüm flock:
* * * * * flock -n /tmp/myjob.lock /path/to/myjob.sh
flock -n dosyada özel bir kilit alır. Önceki bir çağrı hala kilidi tutuyorsa, yenisi hemen çıkar.
Süreklidahili döngü yapan bir .service birimi ve onu başlangıçta başlatan bir .timer birimi oluşturun. Hizmet while true; do /path/to/task; sleep 10; done çalıştırır.
İki crontab satırı:
* * * * * /path/to/job
* * * * * sleep 30 && /path/to/job
Kubernetes CronJobs, sistem cron ile aynı 1 dakika minimum değerine sahiptir. Kubernetes’te alt dakika iş yükleri için CronJob yerine döngülü bir Deployment kullanın.
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.