logologo
Start
Manual
Utveckling
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
Manual
Utveckling
Plugins
API
logologo

Snabbstart

Översikt: Plugin-utveckling
Skriv ditt första plugin
Projektets katalogstruktur

Server-side-utveckling

Översikt
Plugin
Collections (datatabeller)
Database (databasåtgärder)
DataSourceManager (datakällshantering)
ResourceManager (resurshantering)
ACL (behörighetskontroll)
Middleware
Cache
Event (händelser)
Context (request-kontext)
Migration (uppgraderingsskript)
Logger (loggar)
I18n (internationalisering)
Command (kommandorad)
CronJobManager (schemalagda jobb)
Test (tester)

Klient-side-utveckling

Översikt
Plugin
Context (kontext)
Router (routing)
ACL (behörighetskontroll)
DataSourceManager (datakällshantering)
Resource (resurser)
Request (förfrågningar)
Stilar & teman
Logger (loggar)
I18n (internationalisering)
Test (tester)

Övrigt

Plugin-uppgraderingsguide
Språklista
Beroendehantering
Bygga
Previous PageCommand (kommandorad)
Next PageTest (tester)
TIP

Detta dokument har översatts av AI. För eventuella felaktigheter, se den engelska versionen

#CronJobManager – Hantering av schemalagda uppgifter

CronJobManager är en hanterare för schemalagda uppgifter som NocoBase tillhandahåller, baserad på cron. Den låter plugin registrera schemalagda uppgifter på servern för att periodiskt utföra specifik logik.

#Grundläggande användning

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

export default class PluginCronDemo extends Plugin {
  async load() {
    this.app.cronJobManager.addJob({
      cronTime: '0 0 * * *', // Utförs dagligen kl. 00:00
      onTick: async () => {
        console.log('Daglig uppgift: rensa temporär data');
        await this.cleanTemporaryData();
      },
      timeZone: 'Asia/Shanghai',
      start: true, // Startar automatiskt
    });
  }

  async cleanTemporaryData() {
    // Utför rensningslogiken här
  }
}

#Parameterbeskrivning

Typdefinitionen för CronJobParameters är följande (från 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;
}
ParameterTypBeskrivning
cronTimestring | Date | DateTimeTidsuttryck för den schemalagda uppgiften. Stöder standard cron-uttryck, till exempel 0 0 * * * betyder att den körs dagligen kl. 00:00.
onTickfunctionUppgiftens huvudfunktion. Den kommer att utlösas vid den angivna tiden.
onCompletefunctionUtförs när uppgiften stoppas med job.stop() eller efter att onTick-funktionen har slutförts.
timeZonestringAnger exekveringstidszonen (t.ex. Asia/Shanghai).
contextanyKontexten vid exekvering av onTick.
runOnInitbooleanOm den ska exekveras omedelbart vid initialisering.
utcOffset**string | numberAnger tidszonsförskjutningen.
unrefTimeoutbooleanStyr om händelseloopen ska förbli aktiv.

#Exempel på Cron-uttryck

UttryckBetydelse
* * * * *Utförs varje minut
0 * * * *Utförs varje timme
0 0 * * *Utförs dagligen kl. 00:00
0 9 * * 1Utförs varje måndag kl. 09:00
*/10 * * * *Utförs var 10:e minut

💡 Du kan använda crontab.guru för att få hjälp med att generera uttryck.

#Kontrollera start och stopp av uppgifter

const job = app.cronJobManager.addJob({ ... });
job.start(); // Starta uppgiften
job.stop();  // Stoppa uppgiften
TIP

Schemalagda uppgifter startar och stoppar tillsammans med applikationen. Om det inte är absolut nödvändigt behöver ni vanligtvis inte starta eller stoppa dem manuellt.