تتيح لك ثلاثة إجراءات تفعيل مختلفة جدولة عملية تلقائية مسبقًا:
كيفية إدخال عنوان المبنى.يتيح لك الخيار الأول، 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
تحديد جدول زمني لتنفيذ عملية تشغيل آلي استنادًا إلى شرط واحد أو أكثر من شروط الوقت أو التاريخ.
يستخدم هذا البرنامج التمهيدي بنية مشابهة لتلك التي تستخدمها أداة Unix cron
لتحديد جدول زمني لعملية تلقائية متكررة.
تتيح لك Time.RecurringSolarTimeScheduledEvent
جدولة عملية تلقائية استنادًا إلى وقت شروق الشمس أو غروبها،
ويمكنك أيضًا دمجها مع شرط يستند إلى التقويم.
تعبيرات cron
قد تكون على دراية بـ cron
، وهو أمر يُستخدم على أنظمة Unix وLinux لتحديد مواعيد المهام المتكررة.
تستخدم مشغّلات الأحداث المُجدوَلة المتكرّرة بنية تعبير جدولة مشابهة لتلك التي تستخدمها cron
، ولهذا السبب، يُشار إلى تعبيرات الجدولة المستخدَمة مع هذه المشغّلات باسم تعبيرات cron
.
تتوفّر عدة "نكهات" مختلفة من cron
، وعدة أشكال مختلفة من بنية الجملة في عمليات التنفيذ هذه. تستخدم تعبيرات cron
مشغّل الأحداث المجدوَلة المتكرّرة البادئة البنية نفسها التي يستخدمها مجدول Quartz.
يتم شرح بنية تعبير Quartz cron
في مستندات QuartzCronExpression
.
أمثلة
في ما يلي بعض الأمثلة لتوضيح ذلك.
حالة الاستخدام | ثانية واحدة | دقيقة | ساعة | اليوم من الشهر | الشهر | اليوم من الأسبوع | سنة |
---|---|---|---|---|---|---|---|
التشغيل كل 24 ساعة، عند منتصف الليل | 0 |
0 |
0 |
? |
* |
* |
* |
التشغيل في الساعة 6:00 صباحًا كل ثلاثاء | 0 |
30 |
19 |
? |
* |
3 |
* |
تشغيلها كل ساعة عند مرور ربع ساعة على رأس الساعة، خلال شهر فبراير | 0 |
15 |
* |
? |
2 |
* |
* |
التشغيل مرة واحدة في الساعة | 0 |
0 |
* |
? |
* |
* |
* |
يتم تشغيلها كل 24 ساعة، عند منتصف الليل، من يناير إلى مارس، في يوم الأسبوع الأقرب إلى اليوم الأول من الشهر | 0 |
0 |
0 |
? |
1-3 |
1W |
* |
في ثاني خميس من شهر فبراير، مرة كل ساعة، في الربع الأول من الساعة | 0 |
15 |
* |
? |
2 |
5#2 |
* |
التشغيل كل ساعة في الربع الأول من الساعة، في آخر يوم من شهر شباط (فبراير) | 0 |
15 |
* |
L |
2 |
? |
* |
التشغيل في الساعة 6:00 صباحًا كل ثلاثاء وخميس | 0 |
30 |
19 |
? |
* |
3,5 |
* |
RecurringClockTimeScheduledEvent
في RecurringClockTimeScheduledEvent
starter، يتم تعيين سلسلة التعبير 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 *")) }