node-schedule

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist node-schedule?

node-schedule ist eine flexible Bibliothek zur Aufgabenplanung (cron-ähnlich) in der Node.js-Umgebung. Sie ermöglicht die Ausführung von JavaScript/TypeScript-Funktionen nach einem Zeitplan unter Verwendung von cron-Syntax, Intervallen oder bestimmten Daten. Die Bibliothek eignet sich ideal für die Erstellung von Hintergrundaufgaben, periodischen Benachrichtigungen, Datenbereinigung und anderen automatisierten Prozessen.

Wozu braucht man node-schedule?

In Webanwendungen muss Code oft nicht auf Benutzeranfrage, sondern zeitgesteuert ausgeführt werden. Zum Beispiel: Versand täglicher Berichte, Archivierung von Logs, Überprüfung von Serverstatus. node-schedule bietet eine einfache und zuverlässige Möglichkeit, dies ohne komplexe Warteschlangensysteme zu realisieren. Im Gegensatz zu setInterval unterstützt es komplexe cron-Zeitpläne und berücksichtigt Zeitzonen.

Installation

Installieren Sie die Bibliothek über npm oder yarn:

npm install node-schedule# oderyarn add node-schedule

Für TypeScript installieren Sie zusätzlich die Typen:

npm install @types/node-schedule --save-dev

Hauptfunktionen

  • Cron-Zeitpläne: Unterstützung der standardmäßigen cron-Syntax (Minuten, Stunden, Tage, Monate).
  • Aufgaben abbrechen: Möglichkeit, die geplante Ausführung abzubrechen.
  • Einmalige Aufgaben: Ausführung zu einem bestimmten Datum.
  • Wiederkehrende Aufgaben: Wiederholung in einem festen Intervall.
  • Fehlerbehandlung: Integrierte Unterstützung für Callbacks bei Fehlern.

Codebeispiel in TypeScript

import * as schedule from 'node-schedule';

// Aufgabe: Jede Minuteconst job = schedule.scheduleJob('*/1 * * * *', () => { console.log('Aufgabe ausgeführt um:', new Date().toISOString());});

// Einmalige Aufgabe in 10 Sekundenconst date = new Date(Date.now() + 10000);schedule.scheduleJob(date, () => { console.log('Einmalige Aufgabe');});

// Aufgabe nach 30 Sekunden abbrechensetTimeout(() => { job.cancel(); console.log('Aufgabe abgebrochen');}, 30000);

// Aufgabe mit wiederkehrender Regelconst rule = new schedule.RecurrenceRule();rule.hour = 14;rule.minute = 30;schedule.scheduleJob(rule, () => { console.log('Aufgabe um 14:30 jeden Tag');});

Wann verwenden

node-schedule eignet sich ideal für:

  • Hintergrunddienstprogramme: Bereinigung temporärer Dateien, Backups.
  • Benachrichtigungen: Zeitgesteuerter Versand von E-Mails oder Push-Benachrichtigungen.
  • Überwachung: Periodische Überprüfung der Service-Gesundheit.
  • Integrationen: Synchronisation mit externen APIs per cron.

Verwenden Sie node-schedule nicht für Aufgaben, die hohe Präzision (Millisekunden) oder verteilte Ausführung erfordern (hierfür eignen sich Warteschlangen wie Bull oder RabbitMQ besser).

Die Bibliothek ist leichtgewichtig, benötigt keine externen Abhängigkeiten und funktioniert hervorragend in Verbindung mit Express, NestJS oder reinem Node.js.

Empfehlungen