logologo
Bắt đầu
Hướng dẫn
Phát triển
Plugin
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Bắt đầu
Hướng dẫn
Phát triển
Plugin
API
logologo

Bắt đầu nhanh

Tổng quan phát triển plugin
Viết plugin đầu tiên
Cấu trúc thư mục dự án

Phát triển phía server

Tổng quan
Plugin
Collections (Bảng dữ liệu)
Thao tác Database
Quản lý DataSourceManager
Quản lý ResourceManager
Kiểm soát quyền ACL
Middleware
Cache
Event
Ngữ cảnh yêu cầu (Context)
Script nâng cấp (Migration)
Logger (Nhật ký)
I18n (Quốc tế hóa)
Command (Dòng lệnh)
Quản lý tác vụ định kỳ (CronJobManager)
Test

Phát triển phía client

Tổng quan
Plugin
Ngữ cảnh (Context)
Router
Kiểm soát quyền ACL
Quản lý DataSourceManager
Resource
Request
Styles & Themes
Logger (Nhật ký)
I18n (Quốc tế hóa)
Test

Khác

Hướng dẫn nâng cấp plugin
Danh sách ngôn ngữ
Quản lý phụ thuộc
Build
Previous PageCommand (Dòng lệnh)
Next PageTest
TIP

Tài liệu này được dịch bởi AI. Đối với bất kỳ thông tin không chính xác nào, vui lòng tham khảo phiên bản tiếng Anh

#CronJobManager

CronJobManager là một trình quản lý tác vụ định kỳ do NocoBase cung cấp, được xây dựng dựa trên cron. Nó cho phép các plugin đăng ký các tác vụ định kỳ trên máy chủ để thực thi logic cụ thể theo chu kỳ.

#Cách sử dụng cơ bản

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

export default class PluginCronDemo extends Plugin {
  async load() {
    this.app.cronJobManager.addJob({
      cronTime: '0 0 * * *', // Thực thi lúc 00:00 mỗi ngày
      onTick: async () => {
        console.log('Tác vụ hàng ngày: dọn dẹp dữ liệu tạm thời');
        await this.cleanTemporaryData();
      },
      timeZone: 'Asia/Shanghai',
      start: true, // Tự động khởi động
    });
  }

  async cleanTemporaryData() {
    // Thực thi logic dọn dẹp tại đây
  }
}

#Mô tả tham số

Định nghĩa kiểu CronJobParameters như sau (từ 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;
}
Tham sốKiểuMô tả
cronTimestring | Date | DateTimeBiểu thức thời gian của tác vụ định kỳ. Hỗ trợ các biểu thức cron tiêu chuẩn, ví dụ 0 0 * * * nghĩa là thực thi lúc 00:00 mỗi ngày.
onTickfunctionHàm chính của tác vụ. Sẽ được kích hoạt vào thời gian đã chỉ định.
onCompletefunctionThực thi khi tác vụ bị dừng bởi job.stop() hoặc sau khi hàm onTick hoàn tất.
startbooleanLiệu có khởi động tác vụ ngay lập tức hay không.
timeZonestringChỉ định múi giờ thực thi (ví dụ: Asia/Shanghai).
contextanyNgữ cảnh khi thực thi onTick.
runOnInitbooleanLiệu có thực thi một lần ngay lập tức khi khởi tạo hay không.
utcOffsetstring | numberChỉ định độ lệch múi giờ UTC.
unrefTimeoutbooleanKiểm soát liệu vòng lặp sự kiện có duy trì hoạt động hay không.

#Ví dụ về biểu thức Cron

Biểu thứcÝ nghĩa
* * * * *Thực thi mỗi phút
0 * * * *Thực thi mỗi giờ
0 0 * * *Thực thi lúc 00:00 mỗi ngày
0 9 * * 1Thực thi lúc 09:00 mỗi thứ Hai
*/10 * * * *Thực thi mỗi 10 phút

💡 Bạn có thể sử dụng crontab.guru để hỗ trợ tạo biểu thức.

#Kiểm soát việc khởi động và dừng tác vụ

const job = app.cronJobManager.addJob({ ... });
job.start(); // Khởi động tác vụ
job.stop();  // Dừng tác vụ
TIP

Các tác vụ định kỳ sẽ tự động khởi động cùng với ứng dụng và dừng khi ứng dụng dừng. Thông thường, bạn không cần phải tự khởi động hoặc dừng chúng một cách thủ công trừ khi có yêu cầu đặc biệt.