node-schedule — Aufgabenplaner für TypeScript

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
```html

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-schedule

Danach 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 scheduledJobs gibt 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.

```

Empfehlungen