الحفر أعمقوظائف Cron

جدولة Cron Jobs في Kawkab

Cron Jobs هي آلية قوية لجدولة وتنفيذ المهام بشكل دوري في توقيتات محددة، وهي جزء أساسي من أي تطبيق يتطلب تنفيذ عمليات مجدولة بانتظام. في Kawkab، يمكنك تحديد توقيت تنفيذ المهام بسهولة ومرونة من خلال إعدادات Cron، مما يتيح لك تخصيص الجدول الزمني للمهمات وفقًا لاحتياجاتك الخاصة.

إنشاء Cron Job في Kawkab

لإضافة Cron Job جديد في Kawkab، يمكنك استخدام الأمر التالي لإنشاء المهمة المجدولة:

npm run kawkab cron:make <name> [module]
  • <name>: اسم المهمة (Cron Job) التي ترغب في إنشائها.
  • [module]: الموديول الذي تريد إضافة Cron Job إليه (اختياري، والافتراضي هو main).

مثال عملي:

لنفترض أنك ترغب في إنشاء Cron Job باسم DailyTask في الموديول tasks، يمكنك استخدام الأمر التالي:

npm run kawkab cron:make DailyTask tasks

صيغة Cron

تتكون صيغة Cron من خمسة حقول ، وتحدد توقيت تنفيذ المهام وفقًا للحقول التالية:

  1. الدقيقة (minute): (0-59) - الدقيقة التي سيتم فيها تنفيذ المهمة.
  2. الساعة (hour): (0-23) - الساعة التي سيتم فيها تنفيذ المهمة.
  3. اليوم من الشهر (dayOfMonth): (1-31) - اليوم من الشهر الذي سيتم فيه تنفيذ المهمة.
  4. الشهر (month): (1-12) - الشهر الذي سيتم فيه تنفيذ المهمة.
  5. اليوم من الأسبوع (dayOfWeek): (0-6) - اليوم من الأسبوع الذي سيتم فيه تنفيذ المهمة (0 هو الأحد و6 هو السبت).

كيفية تحديد الوقت في Cron

يمكنك تحديد توقيت تنفيذ المهام باستخدام Kawkab بسهولة عبر دوال مخصصة في الكلاس BaseCronJob الذي يتعامل مع جدولة المهام. إليك بعض الأمثلة على كيفية تحديد توقيت المهمة:

أمثلة على جدولة المهام:

  1. تشغيل المهمة كل دقيقة:

    * * * * *
  2. تشغيل المهمة في بداية كل ساعة:

    0 * * * *
  3. تشغيل المهمة يوميًا في الساعة 3 صباحًا:

    0 3 * * *
  4. تشغيل المهمة كل يوم أحد في الساعة 5 مساءً:

    0 17 * * 0
  5. تشغيل المهمة في اليوم الأول من كل شهر:

    0 0 1 * *
  6. تشغيل المهمة في يوم الإثنين الساعة 6 صباحًا:

    0 6 * * 1
  7. تشغيل المهمة في أول يوم من الشهر وفي الساعة 12 ظهرًا:

    0 12 1 * *

تخصيص توقيت المهام في Kawkab

يتيح لك Kawkab تحديد توقيت المهام باستخدام دوال مدمجة في الكلاس BaseCronJob. الكود التالي يوضح كيفية تخصيص توقيت تنفيذ Cron Job في Kawkab باستخدام دوال التوقيت المختلفة:

تحديد الوقت في BaseCronJob:

  1. الدقيقة (minute):
    تُستخدم الدالة minute() لتحديد الدقيقة التي سيتم فيها تنفيذ المهمة.

  2. الساعة (hour):
    تُستخدم الدالة hour() لتحديد الساعة التي سيتم فيها تنفيذ المهمة.

  3. اليوم من الشهر (dayOfMonth):
    تُستخدم الدالة dayOfMonth() لتحديد اليوم من الشهر.

  4. الشهر (month):
    تُستخدم الدالة month() لتحديد الشهر الذي سيتم فيه تنفيذ المهمة.

  5. اليوم من الأسبوع (dayOfWeek):
    تُستخدم الدالة dayOfWeek() لتحديد اليوم من الأسبوع.

مثال عملي: جدولة Cron Job في Kawkab

افترض أنك تريد تنفيذ Cron Job كل يوم إثنين الساعة 8:00 صباحًا. الكود سيكون كالتالي:

import { BaseCronJob, CronJobDayOfWeekEnum } from 'kawkab';
 
export default class extends BaseCronJob {
    isEnabled(): boolean {
        return true;  // تأكيد تفعيل المهمة
    }
 
    minute(): number | string {
        return '0';  // الدقيقة 0
    }
 
    hour(): number | string {
        return '8';  // الساعة 8 صباحًا
    }
 
    dayOfMonth(): number | string {
        return '*';  // كل يوم من أيام الشهر
    }
 
    month(): number | string {
        return '*';  // كل شهر
    }
 
    dayOfWeek(): number | string {
        return CronJobDayOfWeekEnum.Monday;  // يوم الإثنين
    }
 
    async handle(): Promise<void> {
        console.log("Cron Job is running...");
    }
}

الخاتمة

تعد Cron Jobs أداة حيوية وفعالة في جدولة المهام في أي تطبيق يتطلب تنفيذ عمليات دورية. من خلال Kawkab، يمكنك تحديد توقيت تنفيذ المهام بدقة ومرونة، مما يتيح لك تخصيص جدول المهام وفقًا للاحتياجات الخاصة بك دون التقيد بنظام تشغيل معين. يمكن تنفيذ المهام على جميع الأنظمة التي تدعم Cron Jobs، مما يجعلها مثالية لتطبيقات تعمل عبر منصات متعددة.