logologo
Empezar
Manual
Desarrollo
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
Empezar
Manual
Desarrollo
Plugins
API
logologo

Inicio rápido

Resumen de desarrollo de plugins
Escribir el primer plugin
Estructura de directorios del proyecto

Desarrollo del lado del servidor

Visión general
Plugin
Colecciones
Operaciones de base de datos
Gestión de fuentes de datos
Gestión de recursos
Control de permisos (ACL)
Middleware
Caché
Evento
Contexto de solicitud
Migración (Script de actualización)
Registro (Logger)
Internacionalización (I18n)
Línea de comandos (Command)
Gestión de tareas programadas
Pruebas

Desarrollo del lado del cliente

Visión general
Plugin
Contexto
Enrutador (Router)
Control de permisos (ACL)
Gestión de fuentes de datos
Recurso
Solicitud
Estilos y temas
Registro (Logger)
Internacionalización (I18n)
Pruebas

Otros

Guía de actualización de plugins
Lista de idiomas
Gestión de dependencias
Compilación
Previous PageLínea de comandos (Command)
Next PagePruebas
Aviso de traducción por IA

Esta documentación ha sido traducida automáticamente por IA.

#CronJobManager: Gestión de Tareas Programadas

CronJobManager es un gestor de tareas programadas que NocoBase le ofrece, basado en cron. Permite que los plugins registren tareas programadas en el servidor para ejecutar lógica específica de forma periódica.

#Uso Básico

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

export default class PluginCronDemo extends Plugin {
  async load() {
    this.app.cronJobManager.addJob({
      cronTime: '0 0 * * *', // Se ejecuta diariamente a las 00:00
      onTick: async () => {
        console.log('Tarea diaria: limpiar datos temporales');
        await this.cleanTemporaryData();
      },
      timeZone: 'Asia/Shanghai',
      start: true, // Inicio automático
    });
  }

  async cleanTemporaryData() {
    // Ejecute aquí la lógica de limpieza
  }
}

#Descripción de Parámetros

La definición del tipo CronJobParameters es la siguiente (tomada 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;
}
ParámetroTipoDescripción
cronTimestring | Date | DateTimeExpresión de tiempo para la tarea programada. Admite expresiones cron estándar, por ejemplo, 0 0 * * * significa que se ejecuta diariamente a las 00:00.
onTickfunctionFunción principal de la tarea. Se activará en el momento especificado.
onCompletefunctionSe ejecuta cuando la tarea es detenida por job.stop() o después de que la función onTick se completa.
timeZonestringEspecifica la zona horaria de ejecución (por ejemplo, Asia/Shanghai).
contextanyContexto al ejecutar onTick.
runOnInitbooleanIndica si se debe ejecutar una vez inmediatamente al inicializar.
utcOffsetstring | numberEspecifica el desplazamiento de la zona horaria.
unrefTimeoutbooleanControla si el bucle de eventos permanece activo.

#Ejemplos de Expresiones Cron

ExpresiónSignificado
* * * * *Se ejecuta cada minuto
0 * * * *Se ejecuta cada hora
0 0 * * *Se ejecuta diariamente a las 00:00
0 9 * * 1Se ejecuta cada lunes a las 09:00
*/10 * * * *Se ejecuta cada 10 minutos

💡 Puede usar crontab.guru para ayudarle a generar expresiones.

#Controlar el Inicio y la Detención de Tareas

const job = app.cronJobManager.addJob({ ... });
job.start(); // Inicia la tarea
job.stop();  // Detiene la tarea
TIP

Las tareas programadas se inician y detienen junto con la aplicación. Por lo general, no necesita iniciarlas o detenerlas manualmente, a menos que sea estrictamente necesario.