TypeScript-Aufgabenplaner: 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

Bibliothek node-schedule: Flexibler Aufgabenplaner in TypeScript



In der modernen Webentwicklung besteht häufig die Notwendigkeit, bestimmte Aktionen zu einer festgelegten Zeit oder nach einem Zeitplan auszuführen. Für das Node.js- und TypeScript-Ökosystem gibt es mehrere Lösungen, aber node-schedule zeichnet sich durch seine Flexibilität und Einfachheit aus. Diese Bibliothek ermöglicht es, sowohl einmalige Aufgaben zu einem genauen Datum als auch wiederkehrende Aufgaben mit Cron-Ausdrücken oder menschenlesbaren Intervallen zu erstellen.



Hauptfunktionen von node-schedule



  • Präzise Ausführungszeit – Aufgabenstart zu einem bestimmten Zeitpunkt (Datum + Uhrzeit)
  • Cron-Ausdrücke – klassische Syntax für periodische Aufgaben (jede Minute, jede Stunde usw.)
  • Wiederkehrende Regeln – flexible Konfiguration von Wiederholungen mit dem Objekt RecurrenceRule
  • Abbrechen und Anhalten – Verwaltung aktiver Aufgaben
  • Unterstützung von Zeitzonen – Arbeit mit lokaler Zeit


Installation und Einbindung



Installieren Sie das Paket über npm, um zu beginnen:



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


Import in der TypeScript-Datei:



import * as schedule from 'node-schedule';


Beispiel 1: Aufgabe zu einem genauen Datum



Erstellen wir eine Aufgabe, die am 31. Dezember 2024 um 23:59:59 ausgeführt wird:



const date = new Date(2024, 11, 31, 23, 59, 59);

const job = schedule.scheduleJob(date, () => { console.log('🎉 Frohes neues Jahr 2025!');});

// Aufgabe abbrechen (falls nötig)// job.cancel();


Beispiel 2: Periodische Aufgabe mit Cron-Ausdruck



Aufgabenstart alle 5 Minuten:



const job = schedule.scheduleJob('*/5 * * * *', () => {    console.log('Führe Aufgabe alle 5 Minuten aus');});


Format des Cron-Ausdrucks: Sekunde Minute Stunde Tag_Monat Monat Wochentag. In node-schedule werden alle 6 Felder unterstützt (im Gegensatz zum klassischen Cron mit 5 Feldern).



Beispiel 3: Verwendung von RecurrenceRule



Erstellen wir eine Aufgabe, die jeden Dienstag und Donnerstag um 10:30 Uhr ausgeführt wird:



const rule = new schedule.RecurrenceRule();rule.dayOfWeek = [2, 4]; // Dienstag und Donnerstagrule.hour = 10;rule.minute = 30;

const job = schedule.scheduleJob(rule, () => { console.log('Sende wöchentlichen Bericht');});


RecurrenceRule unterstützt die folgenden Felder:



  • year – Jahr oder Array von Jahren
  • month – Monat (0-11) oder Array
  • date – Tag des Monats (1-31)
  • dayOfWeek – Wochentag (0-6, wobei 0 = Sonntag)
  • hour – Stunde (0-23)
  • minute – Minute (0-59)
  • second – Sekunde (0-59)


Beispiel 4: Kombinierte Regeln



Aufgabe, die am letzten Tag jedes Monats um 23:59 ausgeführt wird:



const rule = new schedule.RecurrenceRule();rule.month = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; // alle Monaterule.date = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // letzte Tage jedes Monatsrule.hour = 23;rule.minute = 59;rule.second = 59;

const job = schedule.scheduleJob(rule, () => { console.log('Ausführung am letzten Tag des Monats');});


Verwaltung von Aufgaben



Die Bibliothek bietet Methoden zur vollständigen Kontrolle über Aufgaben:



// Aufgabe erstellenconst job = schedule.scheduleJob('*/10 * * * * *', () => {    console.log('Alle 10 Sekunden');});

// Aufgabe abbrechenjob.cancel();

// Prüfen, ob die Aufgabe aktiv istconsole.log(job.pending()); // true oder false

// Alle Aufgaben abbrechenschedule.gracefulShutdow

Empfehlungen