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

Rychlý start

Přehled vývoje pluginů
Vytvoření prvního pluginu
Struktura adresářů projektu

Vývoj na straně serveru

Přehled
Plugin
Kolekce
Databázové operace
Správa zdrojů dat (DataSourceManager)
Správa zdrojů (ResourceManager)
Řízení přístupu (ACL)
Middleware
Cache
Události
Kontext požadavku
Migrace
Protokoly
Internacionalizace (I18n)
Příkazový řádek (Command)
Správa plánovaných úloh (CronJobManager)
Testování

Vývoj na straně klienta

Přehled
Plugin
Kontext
Router
Řízení přístupu (ACL)
Správa zdrojů dat (DataSourceManager)
Zdroje
Požadavky
Styly a motivy
Protokoly
Internacionalizace (I18n)
Testování

Ostatní

Průvodce aktualizací pluginů
Seznam jazyků
Správa závislostí
Sestavení
Previous PagePříkazový řádek (Command)
Next PageTestování
TIP

Tento dokument byl přeložen umělou inteligencí. V případě nepřesností se prosím obraťte na anglickou verzi

#CronJobManager

CronJobManager je správce plánovaných úloh, který NocoBase poskytuje a je založen na cronu. Umožňuje pluginům registrovat plánované úlohy na serveru pro pravidelné spouštění specifické logiky.

#Základní použití

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

export default class PluginCronDemo extends Plugin {
  async load() {
    this.app.cronJobManager.addJob({
      cronTime: '0 0 * * *', // Spustí se denně v 00:00
      onTick: async () => {
        console.log('Denní úloha: vyčištění dočasných dat');
        await this.cleanTemporaryData();
      },
      timeZone: 'Asia/Shanghai',
      start: true, // Automatické spuštění
    });
  }

  async cleanTemporaryData() {
    // Zde implementujte logiku čištění
  }
}

#Popis parametrů

Typ CronJobParameters je definován následovně (z cronu):

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;
}
ParametrTypPopis
cronTimestring | Date | DateTimeČasový výraz pro plánovanou úlohu. Podporuje standardní cron výrazy, například 0 0 * * * znamená spuštění denně v 00:00.
onTickfunctionHlavní funkce úlohy. Bude spuštěna v určený čas.
onCompletefunctionSpustí se, když je úloha zastavena pomocí job.stop() nebo po dokončení funkce onTick.
startbooleanZda se má úloha spustit ihned po vytvoření.
timeZonestringUrčuje časovou zónu pro spuštění (např. Asia/Shanghai).
contextanyKontext při spouštění onTick.
runOnInitbooleanZda se má úloha spustit jednou ihned při inicializaci.
utcOffsetstring | numberUrčuje časový posun UTC.
unrefTimeoutbooleanUrčuje, zda má smyčka událostí zůstat aktivní.

#Příklady Cron výrazů

VýrazVýznam
* * * * *Spustí se každou minutu
0 * * * *Spustí se každou hodinu
0 0 * * *Spustí se denně v 00:00
0 9 * * 1Spustí se každé pondělí v 09:00
*/10 * * * *Spustí se každých 10 minut

💡 Pro generování výrazů můžete použít crontab.guru.

#Řízení spouštění a zastavování úloh

const job = app.cronJobManager.addJob({ ... });
job.start(); // Spustí úlohu
job.stop();  // Zastaví úlohu
TIP

Plánované úlohy se spouštějí a zastavují společně s aplikací. Obvykle je nemusíte spouštět ani zastavovat ručně, pokud to není nezbytně nutné.