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çinL
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.
croner | cronosjs | node-cron | cron | node-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 }