Ana içeriğe geç

Genel Bakış

JavaScript veya TypeScript'te cron ifadelerini değerlendirin veya fonksiyonları tetikleyin. Hiçbir bağımlılık yok. Tüm özellikler. Node. Deno. Bun. Tarayıcı. Canlı olarak deneyin jsfiddle.

Özellikler

  • Cron sözdizimi kullanarak JavaScript'te fonksiyonları tetikleyin.
  • Cron ifadelerini değerlendirin ve yaklaşan çalışma zamanlarının bir listesine ulaşın.
  • Vixie-cron deseni kullanır, ayın son günü ve haftanın günü için L gibi ek özellikler ve ayın n’inci haftası için # içerir.
  • Node.js >=18.0 (hem require hem de import) ile, Deno >=1.16 ve Bun >=1.0.0 ile çalışır.
  • Tarayıcıda bağımsız, UMD veya ES-modül olarak çalışır.
  • Farklı zaman dilimlerini hedefleyin.
  • Dahili aşım koruması.
  • Dahili hata işleme.
  • TypeScript tip tanımları içerir.
  • Asenkron fonksiyonlar için destek.
  • Bir görev planlandığında çalışmayı duraklatma, devam ettirme veya durdurma.
  • Bellek içinde çalışır, veritabanı veya yapılandırma dosyası gerektirmez.
  • Sıfır bağımlılık.
  • Ayrıntılı bir şekilde test edilmiştir ve pm2, Uptime Kuma, ZWave JS ve TrueNAS gibi tanınmış projeler tarafından güvenilir bir şekilde kullanılmaktadır.

Hızlı örnekler

Bir cron ifadesi ile tanımlanan aralıkta bir fonksiyonu çalıştırın

const job = new Cron('*/5 * * * * *', () => {
console.log('Bu her beş saniyede bir çalışacak');
});

Gelecek 100 pazar günü hangi tarihlere denk geliyor?

const nextSundays = new Cron('0 0 0 * * 7').nextRuns(100);
console.log(nextSundays);

Belirli bir tarihe kalan günler

const msLeft = new Cron('59 59 23 24 DEC *').nextRun() - new Date();
console.log(Math.floor(msLeft/1000/3600/24) + " gün kaldı bir sonraki noel arifesine");

Belirli bir tarih/saatte yerel olmayan bir zaman dilimi kullanarak bir fonksiyonu çalıştırın

Zaman, ISO 8601 yerel zamanı, bu 2024-01-23 00:00:00'da Asya/Kalküta saatiyle çalışacaktır.

new Cron('2024-01-23T00:00:00', { timezone: 'Asia/Kolkata' }, () => { console.log('Hooora!') });

Daha fazla örnek için usage/examples.md.


Özellik karşılaştırması

Bu karşılaştırmada, Croner ile dört diğer popüler zamanlama kütüphanesi: cronosjs, node-cron, cron ve node-schedule arasındaki temel farkları vurguluyoruz. Kütüphaneler, platform uyumluluğu, işlevsellik, hata işleme ve Typescript desteği gibi çeşitli özellikler üzerinden karşılaştırılmaktadır.

Aşağıdaki tablo, her kütüphanenin özellikleri hakkında kısaca bir inceleme sunmaktadır.

cronercronosjsnode-croncronnode-schedule
Platformlar
Node.js (CommonJS)
Tarayıcı (ESMCommonJS)
Deno (ESM)
Özellikler
Aşım koruması
Hata işleme
Typescript tipleri
Unref zamanlayıcılar (isteğe bağlı)
dom-VE-dow*
dom-VE-dow* (isteğe bağlı)
Sonraki çalışma
Sonraki n çalışma
Zaman dilimi
Minimum aralık
Kontroller (durdur/devam et)
Aralık (0-13)
Adımlı (*/5)
Ayın son günü (L)
Ayın n’inci haftası (#)

DOM ve DOW? DOM, Ayın Günü, DOW ise Haftanın Günü anlamına gelir. { .note }