Was ist node-schedule?
node-schedule ist eine beliebte Bibliothek zur Planung von verzögerten und wiederkehrenden Aufgaben in der Node.js-Umgebung. Sie ist in JavaScript geschrieben, funktioniert aber dank der Typdefinitionen (DefinitelyTyped) hervorragend mit TypeScript. Die Bibliothek ermöglicht es, Funktionen zu einer bestimmten Zeit, nach einem Zeitplan (cron-ähnliche Syntax) oder in festgelegten Intervallen auszuführen.
Wofür wird node-schedule benötigt?
In modernen Webanwendungen müssen oft Hintergrundoperationen ausgeführt werden: Cache-Bereinigung, Versand von E-Mail-Newslettern, Datenbank-Backups, Aktualisierung von Daten aus externen APIs oder die Generierung von Berichten. Node-schedule löst diese Aufgabe ohne die Verwendung externer Dienste (z. B. cron in Linux) – alles funktioniert direkt innerhalb Ihrer TypeScript-Anwendung.
Installation
Installieren Sie die Bibliothek und die Typen über npm:
npm install node-schedulenpm install --save-dev @types/node-scheduleDanach können Sie sie in Ihr TypeScript-Projekt importieren:
import * as schedule from 'node-schedule';Hauptfunktionen
- Planung mittels cron-String — Sie legen Minuten, Stunden, Tage, Monate und Wochentage fest.
- Planung für ein bestimmtes Datum — Sie übergeben ein Date-Objekt oder einen String.
- Wiederholung mit Intervall — z. B. alle 10 Minuten.
- Task-Abbruch — Sie können eine geplante Ausführung abbrechen.
- Prüfung auf aktive Tasks — Die Methode
scheduledJobsgibt alle aktiven Tasks zurück.
Codebeispiel in TypeScript
import * as schedule from 'node-schedule';
// Task, der jede Minute ausgeführt wird (bei der 30. Sekunde)const job = schedule.scheduleJob('30 * * * * *', () => { console.log('Task ausgeführt um:', new Date().toLocaleString());});
// Task für ein bestimmtes Datumconst date = new Date(Date.now() + 5000); // in 5 Sekundenschedule.scheduleJob(date, () => { console.log('Einmaliger Task in 5 Sekunden');});
// Wiederholung alle 10 Sekundenconst intervalJob = schedule.scheduleJob('*/10 * * * * *', () => { console.log('Alle 10 Sekunden');});
// Task nach 20 Sekunden abbrechensetTimeout(() => { job.cancel(); console.log('Erster Task abgebrochen');}, 20000);
// Prüfung auf aktive Tasksconsole.log('Aktive Tasks:', Object.keys(schedule.scheduledJobs));Wann sollte man node-schedule verwenden
- Wenn Sie Aufgaben innerhalb einer Node.js-Anwendung zeitgesteuert ausführen müssen, ohne externes cron.
- Für einfache Hintergrundtasks: Log-Bereinigung, E-Mail-Versand, Cache-Aktualisierung.
- Wenn Sie die Flexibilität der cron-Syntax benötigen (z. B. jeder erste Tag im Monat um 3:00 Uhr).
- Wenn Sie nicht vom Betriebssystem abhängig sein möchten (Plattformunabhängigkeit).
Verwenden Sie node-schedule nicht für hochlastige, verteilte Systeme – in solchen Fällen sind Task-Warteschlangen (Bull, RabbitMQ) oder Cloud-Scheduler (AWS CloudWatch, GCP Cloud Scheduler) besser geeignet.
Die Bibliothek ist einfach, leichtgewichtig und ideal für kleine und mittlere TypeScript-Projekte.
```Auch in der Bibliothek
Reaktive Programmierung in Java: Die Reactor-Bibliothek
Apache POI Java: vollständiges Tutorial mit Codebeispielen
Kafka Client Java: Vollständiges Tutorial mit Code-Beispielen
Überwachung von Java-Anwendungen: Tools und Bibliotheken zur Metrikenerfassung