كيفية استخدام تعبيرات Cron لإنشاء مشغلات الوقت في البرنامج النصي للتطبيقات

محمد ناصر ‏2024-01-18, 14:41 مساء 92

تعبيرات Cron هي تنسيق نصي قياسي لوصف جدول زمني لتشغيل البرنامج النصي. تتكون تعبيرات Cron من ستة أجزاء، كل جزء يحدد شرطًا واحدًا يجب استيفاؤه لتشغيل البرنامج النصي.

فيما يلي شرح لأجزاء تعبيرات Cron الستة:

* **الدقيقة:** يمكنك استخدام الأرقام من 0 إلى 59.
* **الساعة:** يمكنك استخدام الأرقام من 0 إلى 23.
* **اليوم:** يمكنك استخدام الأرقام من 1 إلى 31.
* **الشهر:** يمكنك استخدام الأرقام من 1 إلى 12.
* **اليوم من الأسبوع:** يمكنك استخدام الأحرف التالية:
   * **M** ليوم الاثنين
   * **T** ليوم الثلاثاء
   * **W** ليوم الأربعاء
   * **R** ليوم الخميس
   * **F** ليوم الجمعة
   * **S** ليوم السبت
   * **U** ليوم الأحد
* **السنة:** يمكنك استخدام الأرقام من 0 إلى 99.

على سبيل المثال، تعبير Cron التالي يحدد تشغيل البرنامج النصي كل دقيقة:

```
* * * * *
```

تعبير Cron التالي يحدد تشغيل البرنامج النصي كل ساعة في الساعة 12:00:

```
0 12 * * *
```

تعبير Cron التالي يحدد تشغيل البرنامج النصي كل يوم في الأول من الشهر:

```
0 0 1 * *
```

تعبير Cron التالي يحدد تشغيل البرنامج النصي كل يوم جمعة في الساعة 12:00:

```
0 12 * * 5
```

لإنشاء مشغلات الوقت في البرنامج النصي للتطبيقات باستخدام تعبيرات Cron، يمكنك استخدام وظائف مختلفة اعتمادًا على اللغة البرمجية التي تستخدمها. على سبيل المثال، في Python، يمكنك استخدام وظيفة `schedule.every()` لإنشاء مشغل يشغل البرنامج النصي كل فترة زمنية.

فيما يلي مثال على كيفية استخدام وظيفة `schedule.every()` لإنشاء مشغل يشغل البرنامج النصي كل دقيقة:

```python
import schedule

def my_script():
 # ...

schedule.every(1).minutes.do(my_script)

while True:
 schedule.run_pending()
 time.sleep(1)
```

في هذا المثال، يتم إنشاء مشغل يشغل البرنامج النصي `my_script()` كل دقيقة. يتم تنفيذ البرنامج النصي `my_script()` بعد تنفيذ كل مشغل.

يمكنك أيضًا استخدام تعبيرات Cron مباشرة في البرنامج النصي الخاص بك. على سبيل المثال، في Python، يمكنك استخدام وظيفة `time.strptime()` لتحليل تعبير Cron إلى كائن `datetime`.

فيما يلي مثال على كيفية استخدام وظيفة `time.strptime()` لتحليل تعبير Cron:

```python
import time

def my_script():
 # ...

cron_expression = "* * * * *"

cron_time = time.strptime(cron_expression, "%M %H * * *")

while True:
 if time.time() >= cron_time.time():
   my_script()
   time.sleep(60)
```

في هذا المثال، يتم تحليل تعبير Cron `* * * * *` إلى كائن `datetime`. يتم تشغيل البرنامج النصي `my_script()` إذا كانت اللحظة الحالية أكبر من أو تساوي وقت Cron.

شارك المقالة