logologo
Start
Handleiding
Ontwikkeling
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
Handleiding
Ontwikkeling
Plugins
API
logologo

Snelstart

Overzicht plug-inontwikkeling
Eerste plug-in schrijven
Projectstructuur

Server-side ontwikkeling

Overzicht
Plug-in
Collecties
Database
DataSourceManager
ResourceManager
ACL
Middleware
Cache
Events
Context
Migratie
Logger
I18n
Commando
CronJobManager
Test

Client-side ontwikkeling

Overzicht
Plug-in
Context
Router
ACL
DataSourceManager
Resource
Request
Stijlen & Thema's
Logger
I18n
Test

Overig

Upgrade-gids voor plug-ins
Talenlijst
Dependency-beheer
Build
Previous PageCommando
Next PageTest
TIP

Dit document is vertaald door AI. Voor onnauwkeurigheden, raadpleeg de Engelse versie

#CronJobManager

De CronJobManager is een taakplanner die NocoBase aanbiedt, gebaseerd op cron. Hiermee kunnen plugins geplande taken op de server registreren voor het periodiek uitvoeren van specifieke logica.

#Basisgebruik

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

export default class PluginCronDemo extends Plugin {
  async load() {
    this.app.cronJobManager.addJob({
      cronTime: '0 0 * * *', // Voert dagelijks om 00:00 uit
      onTick: async () => {
        console.log('Dagelijkse taak: tijdelijke gegevens opschonen');
        await this.cleanTemporaryData();
      },
      timeZone: 'Asia/Shanghai',
      start: true, // Automatisch starten
    });
  }

  async cleanTemporaryData() {
    // Voer hier de opschoonlogica uit
  }
}

#Parameterbeschrijving

De CronJobParameters-typedefinitie is als volgt (van 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;
}
ParameterTypeBeschrijving
cronTimestring | Date | DateTimeDe tijdsuitdrukking voor de geplande taak. Ondersteunt standaard cron-uitdrukkingen, bijvoorbeeld 0 0 * * * betekent dagelijks om 00:00 uur uitvoeren.
onTickfunctionDe hoofdfunctie van de taak. Wordt op het opgegeven tijdstip geactiveerd.
onCompletefunctionWordt uitgevoerd wanneer de taak wordt gestopt met job.stop() of nadat de onTick-functie is voltooid.
timeZonestringSpecificeert de uitvoeringstijdzone (bijv. Asia/Shanghai).
contextanyDe context bij het uitvoeren van onTick.
runOnInitbooleanOf de taak onmiddellijk één keer moet worden uitgevoerd bij initialisatie.
utcOffsetstring | numberSpecificeert de tijdzone-offset.
unrefTimeoutbooleanBepaalt of de event loop actief blijft.

#Voorbeelden van Cron-uitdrukkingen

UitdrukkingBetekenis
* * * * *Elke minuut uitvoeren
0 * * * *Elk uur uitvoeren
0 0 * * *Dagelijks om 00:00 uur uitvoeren
0 9 * * 1Elke maandag om 09:00 uur uitvoeren
*/10 * * * *Elke 10 minuten uitvoeren

💡 U kunt crontab.guru gebruiken om uitdrukkingen te genereren.

#Taken starten en stoppen

const job = app.cronJobManager.addJob({ ... });
job.start(); // Start de taak
job.stop();  // Stop de taak
TIP

Geplande taken starten en stoppen samen met de applicatie. U hoeft ze doorgaans niet handmatig te starten of te stoppen, tenzij dit echt nodig is.