تتيح لك ثلاث إجراءات تفعيل مختلفة جدولة عملية التشغيل الآلي مسبقًا:
الخيار الأول، Time.ScheduledTimeEvent
،
يتيح لك جدولة عملية التشغيل الآلي لتبدأ في لحظة واحدة دقيقة في
المستقبل، أو بشكل متكرر، استنادًا إلى وقت الساعة أو حدث شمسي
(أي شروق الشمس أو غروبها).
على سبيل المثال، يبدأ هذا المشغّل عملية التشغيل الآلي في الساعة 10:00 مساءً كل يوم:
starter<_>(structure, Time.ScheduledTimeEvent) { parameter(Time.ScheduledTimeEvent.clockTime(LocalTime.of(22, 0, 0, 0))) }
بدلاً من ذلك، يمكنك تحديد حدث الوقت الشمسي بدلاً من وقت الساعة. المَعلمة
لهذا النوع من إجراءات البدء هي
SolarTimeStruct
تتألّف من:
type
، يمكن أن يكون إماSolarTimeType.Sunrise
أوSolarTimeType.Sunset
.-
offset
، يتيح لك هذا الخيار تغيير وقت البدء بالنسبة إلى الحدث الشمسي بأي مقدار زمني. تؤدي القيم الموجبة إلى حدوث تأخير بعد الحدث الشمسي، ويؤدي استخدام القيم السالبة إلى بدء تشغيل المولد قبل الحدث الشمسي.
المثال التالي هو عبارة عن مشغّل يبدأ التشغيل التلقائي قبل 15 دقيقة من شمس الصباح كل يوم:
starter<_>(structure, Time.ScheduledTimeEvent) { parameter( Time.ScheduledTimeEvent.solarTime( SolarTimeStruct(SolarTimeType.Sunrise, java.time.Duration.ofMinutes(-15)) ) ) }
عنصرَا التشغيل الثانيان هما عنصرَا تشغيل الأحداث المُجدوَلة المتكرّرة، اللذان يتيحان لك إنشاء إجراءات مبرمَجة يتم تنفيذها بشكل دوري وفقًا لمعايير أكثر تحديدًا يمكن أن تتضمّن شروطًا مستندة إلى الوقت والتقويم.
Time.RecurringClockTimeScheduledEvent
يتيح لك جدولة عملية التشغيل الآلي استنادًا إلى شرط واحد أو أكثر من شروط الوقت أو التاريخ.
يستخدم هذا المشغِّل بنية مشابهة للبنية المستخدَمة في أداة cron
Unix لتحديد الجدول الزمني لعملية التشغيل الآلي المتكررة.
Time.RecurringSolarTimeScheduledEvent
يتيح لك جدولة عملية مبرمَجة استنادًا إلى وقت شروق الشمس أو غروبها،
اختياريًا مع شرط مستند إلى التقويم.
cron
تعبيرات
قد تكون على دراية بـ cron
، وهو أمر يُستخدَم في أنظمة Unix وLinux
لجدولة المهام المتكررة.
تستخدِم أدوات بدء الأحداث المُجدوَلة المتكرّرة بنية تعبير مجدوَل مشابهة لتلك المستخدَمة في cron
، ولهذا السبب، يُشار إلى تعبيراتcron
التي يتم استخدامها مع أدوات البدء هذه.
هناك عدة أنواع مختلفة من cron
، والعديد من الصيغ المختلفة
للنحو في جميع عمليات التنفيذ هذه. تستخدم cron
تعبيرات بدء الأحداث المتكرّرة والمجدوَلة البنية نفسها المستخدَمة في جدولة
Quartz.
يمكنك الاطّلاع على مستندات CronExpression
في Quartz لمعرفة بنية تعبيرات cron
.
أمثلة
في ما يلي بعض الأمثلة لتوضيح ذلك.
حالة الاستخدام | ثانية واحدة | دقيقة | ساعة | اليوم من الشهر | الشهر | اليوم من الأسبوع | سنة |
---|---|---|---|---|---|---|---|
يتم تنفيذها كل 24 ساعة في منتصف الليل | 0 |
0 |
0 |
? |
* |
* |
* |
يتم تشغيلها في الساعة 6:00 صباحًا كل ثلاثاء | 0 |
30 |
19 |
? |
* |
3 |
* |
يتم عرضها كل ساعة بعد ربع ساعة، خلال شهر فبراير | 0 |
15 |
* |
? |
2 |
* |
* |
يتم تنفيذها مرة واحدة في الساعة | 0 |
0 |
* |
? |
* |
* |
* |
يتم تشغيلها كل 24 ساعة في منتصف الليل، من كانون الثاني (يناير) إلى آذار (مارس)، في يوم الأسبوع الأقرب إلى 1 من الشهر | 0 |
0 |
0 |
? |
1-3 |
1W |
* |
في يوم الخميس الثاني من شباط (فبراير)، مرّة كل ساعة، بعد ربع ساعة | 0 |
15 |
* |
? |
2 |
5#2 |
* |
يتم عرض الإعلانات كل ساعة بعد ربع ساعة في آخر يوم من شهر شباط (فبراير). | 0 |
15 |
* |
L |
2 |
? |
* |
يتم تشغيله في الساعة 6:00 صباحًا كلّ يوم ثلاثاء وخميس | 0 |
30 |
19 |
? |
* |
3,5 |
* |
RecurringClockTimeScheduledEvent
في بداية RecurringClockTimeScheduledEvent
، يتم تحديد سلسلة تعبير cron
للحقل
Time.RecurringClockTimeScheduledEvent.cronExpression
.
في ما يلي مثال على RecurringClockTimeScheduledEvent
بدء يبدأ
عملية التشغيل الآلي في الساعة 8:00 مساءً كل أربعاء في شهر نيسان (أبريل):
starter<_>(structure, event = Time.RecurringClockTimeScheduledEvent) { parameter(Time.RecurringClockTimeScheduledEvent.cronExpression("0 0 20 ? 4 4 *")) }
RecurringSolarTimeScheduleEvent
يأخذ المُنشئ RecurringSolarTimeScheduleEvent
مَعلمتَين:
SolarTimeStruct
cronExpression
: مجموعة فرعية من تعبيرcron
تتألف من حقول اليوم من الشهر والشهر واليوم من الأسبوع والسنة فقط. يحدِّد الوقت الشمسي الوقت المحدد الذي سيبدأ فيه التشغيل الآلي، وبالتالي يتم حذف الحقول "الثانية" و"الدقيقة" و "الساعة".
المثال التالي هو عبارة عن عنصر بدء يؤدي إلى بدء عملية التشغيل الآلي بعد ساعة واحدة من شروق الشمس كل يوم أربعاء في شهر نيسان (أبريل):
starter<_>(structure, event = Time.RecurringSolarTimeScheduledEvent) { parameter( Time.RecurringSolarTimeScheduledEvent.solarTime( TimeTrait.SolarTimeStruct(SolarTimeType.Sunrise, Duration.ofHours(1)) ) ) parameter(Time.RecurringSolarTimeScheduledEvent.cronExpression("? 4 4 *")) }