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

התחלה מהירה

סקירת פיתוח Plugin
כתיבת Plugin ראשון
מבנה תיקיות הפרויקט

פיתוח Server-side

סקירה כללית
Plugin
Collections טבלאות נתונים
Database: פעולות
DataSourceManager - ניהול מקורות נתונים
ResourceManager
ACL בקרת הרשאות
Middleware
Cache
Event
Context - הקשר בקשה
Migration סקריפט שדרוג
Logger יומן
Telemetry
I18n בינאום
Command
CronJobManager ניהול משימות מתוזמנות
Test

פיתוח Client-side

סקירה כללית
Plugin
Context
Router ניתוב
ACL בקרת הרשאות
DataSourceManager - ניהול מקורות נתונים
Resource
Request
Styles & Themes
Logger יומן
I18n בינאום
Test

אחר

מדריך שדרוג Plugin
רשימת שפות
ניהול תלויות
בנייה
Previous PageCommand
Next PageTest
TIP

מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית

#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

משימות מתוזמנות מופעלות עם הפעלת היישום ונעצרות עם עצירתו. בדרך כלל אין צורך להפעיל או לעצור אותן ידנית, אלא אם כן יש צורך מיוחד.