logologo
Начало
Руководство
Разработка
Плагины
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Начало
Руководство
Разработка
Плагины
API
logologo

Быстрый старт

Обзор разработки плагинов
Создание первого плагина
Структура каталогов проекта

Серверная разработка

Обзор
Плагин
Коллекции (таблицы данных)
Операции с базой данных
Управление источниками данных (DataSourceManager)
Управление ресурсами (ResourceManager)
Контроль доступа (ACL)
Промежуточное ПО (Middleware)
Кэш
Событие
Контекст запроса
Миграции
Логгер
Интернационализация (I18n)
Командная строка
Управление задачами Cron (CronJobManager)
Тестирование

Клиентская разработка

Обзор
Плагин
Контекст
Маршрутизатор
Контроль доступа (ACL)
Управление источниками данных (DataSourceManager)
Ресурс
Запрос
Стили и темы
Логгер
Интернационализация (I18n)
Тестирование

Прочее

Руководство по обновлению плагинов
Список языков
Управление зависимостями
Сборка
Previous PageКомандная строка
Next PageТестирование
Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

#CronJobManager — Управление запланированными задачами

CronJobManager — это менеджер запланированных задач, предоставляемый NocoBase и основанный на библиотеке cron. Он позволяет плагинам регистрировать запланированные задачи на сервере для периодического выполнения определённой логики.

#Базовое использование

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

export default class PluginCronDemo extends Plugin {
  async load() {
    this.app.cronJobManager.addJob({
      cronTime: '0 0 * * *', // Выполняется ежедневно в 00:00
      onTick: async () => {
        console.log('Ежедневная задача: очистка временных данных');
        await this.cleanTemporaryData();
      },
      timeZone: 'Asia/Shanghai',
      start: true, // Автоматический запуск
    });
  }

  async cleanTemporaryData() {
    // Здесь реализуйте логику очистки
  }
}

#Описание параметров

Тип CronJobParameters определён следующим образом (из 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;
}
ПараметрТипОписание
cronTimestring | Date | DateTimeВыражение времени для запланированной задачи. Поддерживает стандартные cron-выражения, например, 0 0 * * * означает выполнение ежедневно в 00:00.
onTickfunctionОсновная функция задачи. Будет вызвана в указанное время.
onCompletefunctionВыполняется, когда задача остановлена методом job.stop() или после завершения функции onTick.
timeZonestringУказывает часовой пояс выполнения (например, Asia/Shanghai).
contextanyКонтекст выполнения функции onTick.
runOnInitbooleanСледует ли выполнить задачу один раз сразу при инициализации.
utcOffsetstring | numberУказывает смещение часового пояса.
unrefTimeoutbooleanОпределяет, должен ли цикл событий оставаться активным.

#Примеры Cron-выражений

ВыражениеЗначение
* * * * *Выполняется каждую минуту
0 * * * *Выполняется каждый час
0 0 * * *Выполняется ежедневно в 00:00
0 9 * * 1Выполняется каждый понедельник в 09:00
*/10 * * * *Выполняется каждые 10 минут

💡 Вы можете использовать crontab.guru для помощи в создании выражений.

#Управление запуском и остановкой задач

const job = app.cronJobManager.addJob({ ... });
job.start(); // Запустить задачу
job.stop();  // Остановить задачу
TIP

Запланированные задачи запускаются и останавливаются вместе с приложением. Обычно вам не требуется вручную запускать или останавливать их.