logologo
Começar
Manual
Desenvolvimento
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
Começar
Manual
Desenvolvimento
Plugins
API
logologo

Início rápido

Visão geral do desenvolvimento de plugins
Escrever o primeiro plugin
Estrutura de diretórios do projeto

Desenvolvimento do lado do servidor

Visão Geral
Plugin
Collections (Tabelas de dados)
Database (Operações de banco de dados)
DataSourceManager (Gerenciamento de fontes de dados)
ResourceManager (Gerenciamento de recursos)
ACL (Controle de acesso)
Middleware
Cache
Event (Evento)
Context (Contexto da requisição)
Migration (Script de atualização)
Logger (Log)
I18n (Internacionalização)
Command (Linha de comando)
CronJobManager (Gerenciamento de tarefas agendadas)
Test (Teste)

Desenvolvimento do lado do cliente

Visão Geral
Plugin
Context (Contexto)
Router (Rotas)
ACL (Controle de acesso)
DataSourceManager (Gerenciamento de fontes de dados)
Resource (Recurso)
Request (Requisição)
Estilos e temas
Logger (Log)
I18n (Internacionalização)
Test (Teste)

Outros

Guia de atualização de plugins
Lista de idiomas
Gerenciamento de dependências
Build
Previous PageCommand (Linha de comando)
Next PageTest (Teste)
Aviso de tradução por IA

Esta documentação foi traduzida automaticamente por IA.

#CronJobManager

CronJobManager é um gerenciador de tarefas agendadas fornecido pelo NocoBase, baseado em cron. Ele permite que os plugins registrem tarefas agendadas no servidor para executar lógicas específicas periodicamente.

#Uso Básico

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

export default class PluginCronDemo extends Plugin {
  async load() {
    this.app.cronJobManager.addJob({
      cronTime: '0 0 * * *', // Executar diariamente às 00:00
      onTick: async () => {
        console.log('Tarefa diária: limpar dados temporários');
        await this.cleanTemporaryData();
      },
      timeZone: 'Asia/Shanghai',
      start: true, // Início automático
    });
  }

  async cleanTemporaryData() {
    // Execute a lógica de limpeza aqui
  }
}

#Descrição dos Parâmetros

A definição do tipo CronJobParameters é a seguinte (do 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âmetroTipoDescrição
cronTimestring | Date | DateTimeExpressão de tempo da tarefa agendada. Suporta expressões cron padrão, por exemplo, 0 0 * * * significa executar diariamente às 00:00.
onTickfunctionFunção principal da tarefa. Será acionada no horário especificado.
onCompletefunctionExecuta quando a tarefa é parada por job.stop() ou após a função onTick ser concluída.
timeZonestringEspecifica o fuso horário de execução (por exemplo, Asia/Shanghai).
contextanyContexto ao executar onTick.
runOnInitbooleanIndica se deve ser executado uma vez imediatamente na inicialização.
utcOffsetstring | numberEspecifica o deslocamento do fuso horário.
unrefTimeoutbooleanControla se o loop de eventos permanece ativo.

#Exemplos de Expressões Cron

ExpressãoSignificado
* * * * *Executa a cada minuto
0 * * * *Executa a cada hora
0 0 * * *Executa diariamente às 00:00
0 9 * * 1Executa toda segunda-feira às 09:00
*/10 * * * *Executa a cada 10 minutos

💡 Você pode usar crontab.guru para ajudar a gerar expressões.

#Controlando o Início e a Parada das Tarefas

const job = app.cronJobManager.addJob({ ... });
job.start(); // Inicia a tarefa
job.stop();  // Para a tarefa
TIP

As tarefas agendadas iniciam e param junto com a aplicação. Geralmente, você não precisa iniciá-las ou pará-las manualmente.