TypeScript-Aufgabenplaner: Ausführliche Anleitung zur Bibliothek 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

TypeScript-Aufgabenplaner: Automatisierung mit node-schedule



In der modernen Webentwicklung besteht häufig die Notwendigkeit, Code nach einem Zeitplan auszuführen: Benachrichtigungen senden, Cache leeren, Berichte generieren oder Daten synchronisieren. Für TypeScript-Projekte ist node-schedule eine der leistungsstärksten und flexibelsten Bibliotheken. Es ist ein Aufgabenplaner, der sowohl einmalige als auch wiederkehrende Ausführungen mit Cron-Ausdrücken, Daten oder benutzerdefinierten Regeln ermöglicht.



Installation und Einrichtung



Führen Sie zur Installation der Bibliothek den folgenden Befehl aus:



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


Nach der Installation können Sie das Modul in Ihre TypeScript-Datei importieren:



import * as schedule from 'node-schedule';


Hauptfunktionen von node-schedule



  • Planung mit Cron-Ausdrücken — Unterstützung klassischer 6-Feld-Masken (Sekunden, Minuten, Stunden, Tag des Monats, Monat, Tag der Woche).
  • Einmalige Aufgaben — Ausführung von Code zu einem bestimmten Zeitpunkt.
  • Wiederkehrende Regeln — Erstellung benutzerdefinierter Intervalle mit dem Objekt RecurrenceRule.
  • Aufgaben abbrechen — Möglichkeit, die Ausführung einer geplanten Aufgabe zu stoppen.
  • Unterstützung von Zeitzonen — präzise Ausführung in der angegebenen Zeitzone.


Beispiel 1: Einfacher Cron-Planer



Erstellen wir eine Aufgabe, die jede Minute ausgeführt wird:



import * as schedule from 'node-schedule';

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

// Nach 5 Minuten brechen wir die Aufgabe absetTimeout(() => { job.cancel(); console.log('Aufgabe abgebrochen');}, 5 * 60 * 1000);


In diesem Beispiel bedeutet der Cron-Ausdruck '*/1 * * * *' „jede Minute“. Beachten Sie die Reihenfolge der Felder: Sekunden, Minuten, Stunden, Tag des Monats, Monat, Tag der Woche.



Beispiel 2: Aufgabe mit einem bestimmten Datum



Sie können die Ausführung zu einem bestimmten Zeitpunkt in der Zukunft planen:



import * as schedule from 'node-schedule';

const date = new Date(2025, 11, 31, 23, 59, 0); // 31. Dezember 2025, 23:59

const job = schedule.scheduleJob(date, () => { console.log('Neujahr ist da!');});

// Überprüfen, ob die Aufgabe geplant istconsole.log('Aufgabe aktiv:', job !== null);


Beispiel 3: Wiederkehrende Regel (RecurrenceRule)



Wenn Cron-Ausdrücke kompliziert erscheinen, verwenden Sie das Objekt RecurrenceRule, um verständliche Regeln zu erstellen:



import * as schedule from 'node-schedule';

const rule = new schedule.RecurrenceRule();rule.hour = 9;rule.minute = 30;rule.dayOfWeek = [1, 3, 5]; // Montag, Mittwoch, Freitag

const job = schedule.scheduleJob(rule, () => { console.log('Morgendliches Meeting um 9:30 an Werktagen (Mo, Mi, Fr)');});

// Zum Abbrechen nach einem Monat:setTimeout(() => job.cancel(), 30 * 24 * 60 * 60 * 1000);


Beispiel 4: Aufgabe mit Zeitzone



Wenn Ihre Anwendung in verschiedenen Zeitzonen arbeitet, geben Sie die Zeitzone an:



import * as schedule from 'node-schedule';

const job = schedule.scheduleJob( { hour: 8, minute: 0, tz: 'Europe/Moscow' }, () => { console.log('Moskauer Morgen: 8:00'); });


Fehlerbehandlung und Aufgabenabbruch



Implementieren Sie immer eine Fehlerbehandlung innerhalb des Callbacks, um einen Absturz der Anwendung zu vermeiden:



import * as schedule from 'node-schedule';

const job = schedule.scheduleJob('*/5 * * * *', async () => { try { // Ihr asynchroner Code const data = await fetchDataFromAPI(); console.log('Daten erhalten:', data); } catch (error) { console.error('Fehler im Planer:',

Empfehlungen