יש שלושה גורמים שונים שיכולים להפעיל אוטומציה מתוזמנת מראש:
הראשון, Time.ScheduledTimeEvent, מאפשר לתזמן אוטומציה שתתחיל ברגע מסוים בעתיד או באופן קבוע, על סמך השעה או אירוע שקשור לשמש (כלומר, זריחה או שקיעה).
לדוגמה, הסימן הזה לתחילת הפעולה מפעיל את הפעולה האוטומטית כל יום בשעה 22: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.
תחביר הביטויים של Quartz cron מוסבר במסמכי התיעוד של CronExpression של Quartz.
דוגמאות
הנה כמה דוגמאות להמחשה.
| תרחיש שימוש | שנייה | דקה | שעה | היום בחודש | חודש | היום בשבוע | שנה |
|---|---|---|---|---|---|---|---|
| הפעלה כל 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 שמפעיל את האוטומציה בשעה 20:00, בכל יום רביעי באפריל:
starter<_>(structure, event = Time.RecurringClockTimeScheduledEvent) { parameter(Time.RecurringClockTimeScheduledEvent.cronExpression("0 0 20 ? 4 4 *")) }
RecurringSolarTimeScheduleEvent
הבלוק RecurringSolarTimeScheduleEvent כולל שני פרמטרים:
SolarTimeStruct.-
cronExpression: קבוצת משנה של ביטויcronשמורכבת רק מהשדות Day-of-Month, Month, Day-of-Week ו-Year. הזמן הסולארי קובע את השעה המדויקת שבה הפעולה האוטומטית תתחיל, ולכן השדות של השניות, הדקות והשעות מושמטים.
בדוגמה הבאה מוצג גורם שמפעיל פעולה אוטומטית שעה אחרי הזריחה, בכל יום רביעי באפריל:
starter<_>(structure, event = Time.RecurringSolarTimeScheduledEvent) { parameter( Time.RecurringSolarTimeScheduledEvent.solarTime( TimeTrait.SolarTimeStruct(SolarTimeType.Sunrise, Duration.ofHours(1)) ) ) parameter(Time.RecurringSolarTimeScheduledEvent.cronExpression("? 4 4 *")) }