logologo
Démarrer
Manuel
Développement
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
Démarrer
Manuel
Développement
Plugins
API
logologo

Démarrage rapide

Aperçu du développement de plugins
Créer son premier plugin
Structure des répertoires du projet

Développement côté serveur

Aperçu
Plugin
Collections (Tables de données)
Database (Opérations)
DataSourceManager (Gestion des sources de données)
ResourceManager (Gestion des ressources)
ACL (Contrôle des permissions)
Middleware
Cache
Event (Événement)
Context (Contexte de la requête)
Migration (Script de mise à niveau)
Logger (Journal)
I18n (Internationalisation)
Command (Ligne de commande)
CronJobManager (Gestion des tâches planifiées)
Test

Développement côté client

Aperçu
Plugin
Context (Contexte)
Router (Routeur)
ACL (Contrôle des permissions)
DataSourceManager (Gestion des sources de données)
Resource (Ressource)
Request (Requête)
Styles & Themes
Logger (Journal)
I18n (Internationalisation)
Test

Autres

Guide de mise à niveau des plugins
Liste des langues
Gestion des dépendances
Build
Previous PageCommand (Ligne de commande)
Next PageTest
Avis de traduction IA

Cette documentation a été traduite automatiquement par IA.

#CronJobManager

CronJobManager est un gestionnaire de tâches planifiées proposé par NocoBase, basé sur cron. Il permet à vos plugins d'enregistrer des tâches planifiées sur le serveur pour exécuter périodiquement une logique spécifique.

#Utilisation de base

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

export default class PluginCronDemo extends Plugin {
  async load() {
    this.app.cronJobManager.addJob({
      cronTime: '0 0 * * *', // S'exécute tous les jours à 00:00
      onTick: async () => {
        console.log('Tâche quotidienne : nettoyage des données temporaires');
        await this.cleanTemporaryData();
      },
      timeZone: 'Asia/Shanghai',
      start: true, // Démarrage automatique
    });
  }

  async cleanTemporaryData() {
    // Exécutez ici la logique de nettoyage
  }
}

#Description des paramètres

La définition du type CronJobParameters est la suivante (tirée de 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;
}
ParamètreTypeDescription
cronTimestring | Date | DateTimeExpression temporelle de la tâche planifiée. Prend en charge les expressions cron standard, par exemple 0 0 * * * signifie une exécution quotidienne à 00:00.
onTickfunctionFonction principale de la tâche. Elle sera déclenchée à l'heure spécifiée.
onCompletefunctionS'exécute lorsque la tâche est arrêtée par job.stop() ou après l'achèvement de la fonction onTick.
timeZonestringSpécifie le fuseau horaire d'exécution (par exemple, Asia/Shanghai).
contextanyContexte d'exécution de onTick.
runOnInitbooleanIndique si la tâche doit être exécutée immédiatement une fois lors de l'initialisation.
utcOffsetstring | numberSpécifie le décalage horaire UTC.
unrefTimeoutbooleanContrôle si la boucle d'événements reste active.

#Exemples d'expressions Cron

ExpressionSignification
* * * * *S'exécute toutes les minutes
0 * * * *S'exécute toutes les heures
0 0 * * *S'exécute tous les jours à 00:00
0 9 * * 1S'exécute tous les lundis à 09:00
*/10 * * * *S'exécute toutes les 10 minutes

💡 Vous pouvez utiliser crontab.guru pour vous aider à générer des expressions.

#Contrôler le démarrage et l'arrêt des tâches

const job = app.cronJobManager.addJob({ ... });
job.start(); // Démarre la tâche
job.stop();  // Arrête la tâche
TIP

Les tâches planifiées démarrent et s'arrêtent avec l'application. Vous n'avez généralement pas besoin de les démarrer ou de les arrêter manuellement, sauf si cela est nécessaire.