انتقل إلى المحتوى
مولد تعبيرات الكرون

صيغة كرون node-cron

مولد تعبيرات node-cron

أنشئ الجداول لـ cron.schedule() في مكتبة node-cron لبيئة Node.js ولغة JavaScript وتحقّق منها. تقبل node-cron خمسة حقول، أو ستة تبدأ بالثواني، وتقبل أسماء الأشهر وأيام الأسبوع. ومنذ الإصدار 4.6 أصبحت تقرأ أيضًا الرموز L وW و# و?. وبخلاف كرون تاب، لا تعمل المهمة إلا في الأيام التي يتطابق فيها حقلا اليوم معًا.

مفسّر ومولّد تعبيرات الكرون

الصيغة
صالح

5 حقول، أو 6 مع الثواني أولًا. يجب أن يتطابق حقلا اليوم معًا، وتُكتب الخطوة هكذا */5 أو 5-59/15. تحتاج الرموز L وW و# إلى الإصدار 4.6 من node-cron.

English

At 8:30 AM, Monday through Friday.

العربية

في تمام الساعة 8:30 ص، من الإثنين إلى الجمعة.

    قوالب جاهزة

    المولّد المرئي للكرون

    اختر الإعدادات لكل حقل، وسيتحدّث التعبير في الأعلى فورًا.

    مواعيد التنفيذ الخمسة القادمة

    بتوقيتك المحلي:

      مرجع سريع

      *
      أي قيمة
      ,
      قائمة قيم — 1,15,30
      -
      نطاق — 1-5
      /
      خطوة — */10
      ?
      بلا قيمة محددة (حقول الأيام)
      @daily
      اختصار لـ 0 0 * * *
      L
      آخر يوم في الشهر أو آخر يوم من نوعه — 6L
      W
      أقرب يوم من الإثنين إلى الجمعة — 15W
      #
      ترتيب اليوم في الشهر — 6#3
      22-2
      نطاق يلتف إلى البداية — من 10 مساءً إلى 2 صباحًا

      صيغة node-cron

      يتكوّن تعبير node-cron من خمسة حقول، أو ستة عند إضافة الثواني في البداية. ومع خمسة حقول تعمل المهمة عند الثانية 0:

      الحقلالقيم المسموحةالرموز الخاصة
      الثانية0–59 (اختياري، ويأتي أولًا), - * /
      الدقيقة0–59, - * /
      الساعة0–23, - * /
      يوم الشهر1–31, - * ? / L W
      الشهر1–12 أو الأسماء (JAN أو January), - * /
      يوم الأسبوع0–7 أو الأسماء (‏0 و7 = الأحد), - * ? / L #

      الرموز الخاصة

      الرمزالمعنى
      /الخطوة، وتُكتب بعد * أو بعد نطاق: */10 أو 5-59/15. أما قيمة البداية المجردة مثل 5/15 فمرفوضة.
      -النطاقات. ومنذ الإصدار 4.6 يلتف النطاق المعكوس إلى البداية، فـ 22-2 في حقل الساعة يعني من 22:00 إلى 02:59، أما الإصدارات الأقدم فتقلبه بصمت إلى 2-22.
      Lفي حقل يوم الشهر يعني L آخر يوم في الشهر (من الإصدار 4.3)، وL-3 ما قبله بثلاثة أيام (من 4.6). وفي حقل يوم الأسبوع يعني 5L آخر جمعة في الشهر (من 4.5).
      Wأقرب يوم عمل إلى تاريخ معيّن: 15W، أو LW لآخر يوم عمل في الشهر (من 4.6).
      #ترتيب اليوم في الشهر: 1#1 هو أول إثنين (من 4.5).
      ?مثل *، ويُقبل في حقلي اليوم حتى تُقرأ التعبيرات المكتوبة بأسلوب Quartz (من 4.6).

      أمثلة على كرون node-cron

      اضغط على أي تعبير لتحميله في المولّد أعلاه.

      التعبيرالجدول الزمني
      كل ثانية.
      كل 10 ثوانٍ.
      كل 5 دقائق.
      في تمام الساعة 8:30 ص، من الإثنين إلى الجمعة.
      في تمام الساعة 9:00 ص، من الإثنين إلى الجمعة.
      كل 15 دقيقة، بين 10:00 م و2:59 ص.
      في تمام الساعة 12:00 ص، في آخر يوم من الشهر.
      في تمام الساعة 9:00 ص، قبل آخر يوم من الشهر بـ 3 أيام.
      في تمام الساعة 9:00 ص، في أول إثنين من الشهر.
      في تمام الساعة 5:00 م، في آخر جمعة من الشهر.
      في تمام الساعة 12:00 ص، في اليوم 13 من الشهر، بشرط أن يوافق ذلك اليوم يوم الجمعة.
      في تمام الساعة 12:00 ص.

      الفرق بين node-cron وكرون تاب في لينكس

      الاستخدام في Node.js

      جدول دالة باستخدام cron.schedule(). في الإصدار 4 من node-cron تبدأ المهمة فورًا، وتحدّد الخيارات المنطقة الزمنية وتتخطى أي تشغيل جديد ما دام السابق لم ينتهِ:

      import cron from 'node-cron';
      
      const task = cron.schedule('0 30 8 * * 1-5', async () => {
        await sendDailyReport();
      }, {
        name: 'daily-report',
        timezone: 'Asia/Riyadh',
        noOverlap: true,
      });
      
      cron.validate('0 30 8 * * 1-5'); // true
      task.getNextRuns(3);             // the next three run dates (4.4+)

      تقرأ node-cron 3 بعض التعبيرات بطريقة مختلفة: فالخطوة فيها لا تُبقي إلا القيم التي تقبل القسمة عليها، لذا يعمل 5-59/15 عند الدقائق 15 و30 و45 بدلًا من 05 و20 و35 و50. نفّذ npm ls node-cron لمعرفة الإصدار المثبّت لديك.

      الأسئلة الشائعة

      كيف أشغّل مهمة node-cron كل 10 ثوانٍ؟

      أضف حقل الثواني في البداية: cron.schedule('*/10 * * * * *', task). ومع خمسة حقول تعمل node-cron عند الثانية 0، فالتعبير * * * * * يعمل مرة كل دقيقة.

      ما إصدار node-cron الذي يدعم الرموز L وW و#؟

      أُضيف L في حقل يوم الشهر في الإصدار 4.3، و# و5L في 4.5، وW وL-n و? في 4.6 الذي جعل النطاقات المعكوسة مثل 22-2 تلتف أيضًا. ولا تدعم node-cron 3 أيًّا منها، وينبّهك المولّد عندما يحتاج التعبير إلى إصدار أحدث.

      كيف أحدّد المنطقة الزمنية في node-cron؟

      مرّر اسم المنطقة بصيغة IANA في الخيارات: cron.schedule('0 8 * * *', task, { timezone: 'Asia/Dubai' }). ومن دونه تستخدم node-cron المنطقة الزمنية لعملية Node.js.

      هل تعمل هذه التعبيرات في مكتبات كرون أخرى بلغة JavaScript؟

      تتشارك معظم مجدولات Node.js، مثل حزمة cron ومكتبة Croner، صيغة الخمسة والستة حقول، لكن التفاصيل تختلف، ومنها طريقة الجمع بين حقلي اليوم والرموز الخاصة المدعومة. اختبر التعبير مع المكتبة التي تستخدمها، فهذا المولّد يتبع node-cron.

      مولدات كرون لمنصات أخرى

      تصفّح كل أمثلة تعبيرات الكرون ←