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
جداول بيانات Collections
عمليات Database
إدارة مصادر بيانات DataSourceManager
إدارة موارد ResourceManager
التحكم في أذونات ACL
Middleware
Cache
Event
سياق طلب Context
نص ترقية Migration
Logger
Telemetry
I18n (تدويل)
Command (سطر الأوامر)
إدارة المهام المجدولة CronJobManager
Test

تطوير الواجهة الأمامية

نظرة عامة
Plugin
Context (السياق)
Router
التحكم في أذونات ACL
إدارة مصادر بيانات DataSourceManager
Resource
Request
Styles & Themes (الأنماط والمظاهر)
Logger
I18n (تدويل)
Test

أخرى

دليل ترقية الإضافات
قائمة اللغات
إدارة التبعيات
البناء
Previous PageCommand (سطر الأوامر)
Next PageTest
إشعار الترجمة بالذكاء الاصطناعي

تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.

#CronJobManager إدارة المهام المجدولة

CronJobManager هو مدير مهام مجدولة توفره NocoBase، يعتمد على cron. يسمح هذا المدير للإضافات (Plugins) بتسجيل مهام مجدولة على الخادم لتنفيذ منطق معين بشكل دوري.

#الاستخدام الأساسي

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يتحكم فيما إذا كانت حلقة الأحداث (event loop) تبقى نشطة.

#أمثلة على تعبيرات 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

تُشغّل المهام المجدولة وتتوقف مع تشغيل التطبيق وإيقافه. بشكل عام، لا تحتاج إلى بدء أو إيقافها يدويًا.