logologo
Start
Handbuch
Entwickler
Plugins
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Start
Handbuch
Entwickler
Plugins
API
logologo

Schnellstart

Plugin-Entwicklung: Überblick
Erstes Plugin schreiben
Projektverzeichnisstruktur

Serverseitige Entwicklung

Überblick
Plugin
Collections (Datentabellen)
Datenbankoperationen
DataSourceManager
ResourceManager
ACL-Zugriffskontrolle
Middleware
Cache
Events
Request-Kontext
Migration (Update-Skripte)
Logger (Protokollierung)
I18n (Internationalisierung)
Command (Befehlszeile)
CronJobManager
Tests

Clientseitige Entwicklung

Überblick
Plugin
Kontext
Router
ACL-Zugriffskontrolle
DataSourceManager
Ressourcen
Requests
Stile & Themes
Logger (Protokollierung)
I18n (Internationalisierung)
Tests

Sonstiges

Plugin-Update-Leitfaden
Sprachenliste
Abhängigkeitsverwaltung
Build
Previous PageCommand (Befehlszeile)
Next PageTests
KI-Übersetzungshinweis

Diese Dokumentation wurde automatisch von KI übersetzt.

#CronJobManager – Verwaltung zeitgesteuerter Aufgaben

CronJobManager ist ein von NocoBase bereitgestellter Manager für zeitgesteuerte Aufgaben, der auf cron basiert. Er ermöglicht es Plugins, serverseitig zeitgesteuerte Aufgaben zu registrieren, um bestimmte Logik periodisch auszuführen.

#Grundlegende Verwendung

import { Plugin } from '@nocobase/server';

export default class PluginCronDemo extends Plugin {
  async load() {
    this.app.cronJobManager.addJob({
      cronTime: '0 0 * * *', // Täglich um 00:00 Uhr ausführen
      onTick: async () => {
        console.log('Tägliche Aufgabe: Temporäre Daten bereinigen');
        await this.cleanTemporaryData();
      },
      timeZone: 'Asia/Shanghai',
      start: true, // Automatisch starten
    });
  }

  async cleanTemporaryData() {
    // Hier die Bereinigungslogik ausführen
  }
}

#Parameterbeschreibung

Die Typdefinition für CronJobParameters sieht wie folgt aus (aus cron):

export declare interface CronJobParameters {
  cronTime: string | Date | DateTime;
  onTick: CronCommand;
  onComplete?: CronCommand | null;
  start?: boolean;
  timeZone?: string;
  context?: any;
  runOnInit?: boolean;
  utcOffset?: string | number;
  unrefTimeout?: boolean;
}
ParameterTypBeschreibung
cronTimestring | Date | DateTimeZeitlicher Ausdruck für die zeitgesteuerte Aufgabe. Unterstützt Standard-Cron-Ausdrücke, z. B. bedeutet 0 0 * * * die tägliche Ausführung um 00:00 Uhr.
onTickfunctionDie Hauptfunktion der Aufgabe. Sie wird zur angegebenen Zeit ausgelöst.
onCompletefunctionWird ausgeführt, wenn die Aufgabe durch job.stop() beendet wird oder nachdem die onTick-Funktion abgeschlossen ist.
startbooleanGibt an, ob die Aufgabe automatisch gestartet werden soll.
timeZonestringLegt die Ausführungszeitzone fest (z. B. Asia/Shanghai).
contextanyDer Kontext bei der Ausführung von onTick.
runOnInitbooleanGibt an, ob die Aufgabe bei der Initialisierung sofort einmal ausgeführt werden soll.
utcOffsetstring | numberLegt den Zeitzonen-Offset fest.
unrefTimeoutbooleanSteuert, ob der Event-Loop aktiv bleibt.

#Beispiele für Cron-Ausdrücke

AusdruckBedeutung
* * * * *Jede Minute ausführen
0 * * * *Jede Stunde ausführen
0 0 * * *Täglich um 00:00 Uhr ausführen
0 9 * * 1Jeden Montag um 09:00 Uhr ausführen
*/10 * * * *Alle 10 Minuten ausführen

💡 Sie können crontab.guru verwenden, um Ausdrücke zu generieren.

#Starten und Stoppen von Aufgaben steuern

const job = app.cronJobManager.addJob({ ... });
job.start(); // Aufgabe starten
job.stop();  // Aufgabe stoppen
TIP

Zeitgesteuerte Aufgaben starten und stoppen zusammen mit der Anwendung. Normalerweise müssen Sie sie nicht manuell starten oder stoppen.