Was ist node-cron?
node-cron ist eine leichtgewichtige Bibliothek für Node.js, die es ermöglicht, JavaScript-Funktionen (Aufgaben) nach einem Zeitplan auszuführen, indem die Syntax von Cron-Ausdrücken verwendet wird. Sie ist das Pendant zum systemeigenen Cron-Planer in Unix, arbeitet jedoch innerhalb Ihrer Anwendung.
Wozu wird es benötigt?
Die Bibliothek wird zur Automatisierung von Routineoperationen auf dem Server benötigt: Datenbankbereinigung, Versand von E-Mail-Newslettern, Erstellung von Backups, Cache-Aktualisierung, Daten-Parsing und alle anderen periodischen Aufgaben. Dies erspart die Notwendigkeit, eigene Timer zu schreiben und Zeitintervalle manuell zu verwalten.
Installation
Die Installation erfolgt über npm oder yarn:
npm install node-cronoder
yarn add node-cronHauptfunktionen
- Einfache Syntax: Verwendet standardmäßige Cron-Ausdrücke (Minuten, Stunden, Tage usw.)
- Flexibilität: Unterstützung für Sekunden, optionale Zeitzone, Ausführung an Werktagen/Wochenenden
- Aufgabenverwaltung: Methoden
start(),stop(),destroy()zur Steuerung der Ausführung - Leichtgewichtigkeit: Keine externen Abhängigkeiten erforderlich, die Bibliotheksgröße ist minimal
Codebeispiel in JavaScript (Node.js)
const cron = require('node-cron');
// Aufgabe: Jede Minute eine Nachricht ausgebencron.schedule('* * * * *', () => { console.log('Aufgabe wird jede Minute ausgeführt');});
// Aufgabe: Jeden Tag um 9:30 Uhr morgenscron.schedule('30 9 * * *', () => { console.log('Tägliche Aufgabe um 9:30');});
// Aufgabe: Jeden Montag um 8:00 Uhrcron.schedule('0 8 * * 1', () => { console.log('Montag, 8:00 — Zeit für den Bericht');});
// Aufgabe mit Sekunden: Alle 10 Sekundencron.schedule('*/10 * * * * *', () => { console.log('10 Sekunden sind vergangen');});
// Aufgabe nach 5 Sekunden stoppenconst task = cron.schedule('*/1 * * * * *', () => { console.log('Endlose Aufgabe');});setTimeout(() => { task.stop(); console.log('Aufgabe gestoppt');}, 5000);Wann verwenden
Verwenden Sie node-cron, wenn Sie Code zu einer bestimmten Zeit oder in einem bestimmten Intervall innerhalb einer Node.js-Anwendung ausführen müssen. Es ist ideal geeignet für:
- regelmäßige Bereinigung temporärer Dateien oder Logs;
- Versand von Benachrichtigungen oder E-Mails nach Zeitplan;
- Synchronisation von Daten mit externen APIs;
- Generierung von Berichten im Hintergrund;
- Ausführung von Tests oder Server-Health-Checks.
Die Bibliothek ist nicht für hochbelastete verteilte Systeme geeignet (hierfür ist eine Aufgabenwarteschlange besser), aber für die meisten typischen Szenarien ist sie die optimale Lösung.
Auch in der Bibliothek
XCTest — Testen in Swift (iOS/macOS)
Elasticsearch-Client für Go (Golang): Vollständige Anleitung zur Arbeit mit ES
Arbeiten mit Excel in C# (.NET): Bibliotheken EPPlus, ClosedXML und NPOI
PDF-Erstellung in Swift (iOS/macOS): UIGraphicsPDFRenderer, PDFKit und Core Graphics