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

صيغة كرون Spring

مولد تعبيرات كرون لـ Spring

أنشئ تعبيرات الكرون لـ @Scheduled(cron = …) وCronExpression في Spring وSpring Boot وتحقّق منها. يستخدم Spring ستة حقول تبدأ بالثواني، ومنذ الإصدار 5.3 من Spring Framework أصبح يفهم أيضًا الرموز L وW و# والاختصارات مثل @daily.

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

الصيغة
صالح

6 حقول: الثانية الدقيقة الساعة اليوم الشهر يوم الأسبوع. الأحد هو 0 أو 7، وتعمل الرموز L وW و# والاختصارات مثل @daily.

English

At 8:00 AM, Monday through Friday.

العربية

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

    قوالب جاهزة

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

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

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

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

      مرجع سريع

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

      صيغة كرون في Spring

      يتكوّن تعبير كرون في Spring دائمًا من ستة حقول بالضبط، ولا يوجد حقل للسنة:

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

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

      الرمزالمعنى
      ?مثل * تمامًا. يقبله Spring في حقلي اليوم حتى تعمل التعبيرات المكتوبة بأسلوب Quartz.
      Lالأخير: L هو آخر يوم في الشهر، وL-3 ما قبله بثلاثة أيام، و5L أو FRIL آخر جمعة في الشهر.
      Wأقرب يوم عمل إلى تاريخ معيّن: 1W أول يوم عمل في الشهر، وLW آخر يوم عمل.
      #ترتيب اليوم في الشهر: 5#2 أو FRI#2 هو ثاني جمعة في الشهر.
      @الاختصارات: @yearly و@monthly و@weekly و@daily (أو @midnight) و@hourly.

      أمثلة على كرون Spring

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

      التعبيرالجدول الزمني
      كل 5 دقائق.
      عند الدقيقة 0 من كل ساعة.
      في تمام الساعة 8:00 ص، من الإثنين إلى الجمعة.
      عند الدقيقة 0 من كل ساعة، بين 9:00 ص و5:59 م، من الإثنين إلى الجمعة.
      في تمام الساعة 12:00 ص، في اليوم 25 من الشهر، في شهر ديسمبر فقط.
      في تمام الساعة 12:00 ص، في آخر يوم من الشهر.
      في تمام الساعة 12:00 ص، في آخر يوم عمل (من الإثنين إلى الجمعة) من الشهر.
      في تمام الساعة 12:00 ص، في آخر خميس من الشهر.
      في تمام الساعة 12:00 ص، في ثاني جمعة من الشهر.
      في تمام الساعة 12:00 ص.

      الفرق بين كرون Spring وكرون لينكس

      الاستخدام مع ‎@Scheduled

      فعّل الجدولة مرة واحدة باستخدام @EnableScheduling، ثم أضف التعليق التوضيحي إلى الدالة. تحدّد الخاصية zone المنطقة الزمنية، ومن دونها تُستخدم المنطقة الافتراضية للخادم:

      @Configuration
      @EnableScheduling
      class SchedulingConfig {}
      
      @Component
      class ReportJob {
          @Scheduled(cron = "0 0 8 * * MON-FRI", zone = "Asia/Riyadh")
          void sendDailyReport() {
              // 08:00 Riyadh time, Monday to Friday
          }
      }

      ولتغيير الجدول دون إصدار جديد، اقرأه من الإعدادات باستخدام @Scheduled(cron = "${report.cron}")، واضبط report.cron=- لإيقاف المهمة.

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

      لماذا تظهر رسالة «Cron expression must consist of 6 fields» في Spring؟

      يتوقع Spring حقل الثواني قبل الدقائق. أضف 0 في بداية التعبير ذي الخمسة حقول: 0 9 * * 1-5 يصبح 0 0 9 * * 1-5 (الساعة 09:00 من الإثنين إلى الجمعة).

      كيف أحدّد المنطقة الزمنية لمهمة ‎@Scheduled؟

      استخدم الخاصية zone: @Scheduled(cron = "0 0 2 * * *", zone = "Asia/Dubai"). ومن دونها يستخدم Spring المنطقة الزمنية الافتراضية للخادم، وغالبًا ما تكون UTC.

      هل يدعم Spring الرموز L وW و# مثل Quartz؟

      نعم، منذ الإصدار 5.3 من Spring Framework ‏(Spring Boot 2.4): تعمل L وL-3 وLW و15W و5L و5#2. لاحظ أن Spring يعدّ الأحد 0 أو 7، لذا فآخر جمعة هي 5L في Spring لكنها 6L في Quartz.

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

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