Üç farklı başlatıcı, bir otomasyonu önceden planlamanıza olanak tanır:
İlk seçenek olan Time.ScheduledTimeEvent,
bir otomasyonu gelecekte tek bir kesin anda veya saate ya da güneş olayına (yani gün doğumu veya gün batımı) göre yinelenen bir şekilde başlayacak şekilde programlamanıza olanak tanır.
Örneğin, bu başlatıcı otomasyonu her gün saat 22:00'de başlatır:
starter<_>(structure, Time.ScheduledTimeEvent) { parameter(Time.ScheduledTimeEvent.clockTime(LocalTime.of(22, 0, 0, 0))) }
Alternatif olarak, saat dilimi yerine güneş saati etkinliğini belirtebilirsiniz. Bu başlatıcı türünün parametresi, aşağıdakilerden oluşan bir SolarTimeStruct nesnesidir:
type,SolarTimeType.SunriseveyaSolarTimeType.Sunset.offset: Başlangıç zamanını güneş olayına göre istediğiniz kadar kaydırmanıza olanak tanır. Pozitif değerler güneş etkinliğinden sonra gecikme ekler, negatif değerler ise başlatıcının güneş etkinliğinden önce tetiklenmesine neden olur.
Aşağıdaki örnekte, otomasyonu her gün gün doğumundan 15 dakika önce başlatan bir başlatıcı gösterilmektedir:
starter<_>(structure, Time.ScheduledTimeEvent) { parameter( Time.ScheduledTimeEvent.solarTime( SolarTimeStruct(SolarTimeType.Sunrise, java.time.Duration.ofMinutes(-15)) ) ) }
Sonraki iki başlatıcı, yinelenen programlanmış etkinlik başlatıcılarıdır. Bunlar, hem zamana hem de takvime dayalı koşulları içerebilen daha spesifik ölçütlere göre düzenli olarak çalışan otomasyonlar oluşturmanıza olanak tanır.
Time.RecurringClockTimeScheduledEvent
bir veya daha fazla saat ya da tarih koşuluna göre otomasyon planlamanıza olanak tanır.
Bu başlatıcı, yinelenen bir otomasyonun programını belirtmek için Unix cron yardımcı programının kullandığına benzer bir söz dizimi kullanır.
Time.RecurringSolarTimeScheduledEvent,
gün doğumuna veya gün batımına göre otomasyon programlamanıza olanak tanır.
İsteğe bağlı olarak takvime dayalı bir koşulla birlikte kullanılabilir.
cron ifade
Unix ve Linux sistemlerinde yinelenen işleri planlamak için kullanılan cron komutunu biliyor olabilirsiniz.
Yinelenen planlanmış etkinlik başlatıcılar, cron tarafından kullanılana benzer bir planlama ifadesi söz dizimi kullanır. Bu nedenle, bu başlatıcılarla kullanılan planlama ifadeleri cron ifadeleri olarak adlandırılır.
cron'nin birkaç farklı "çeşidi" ve bu uygulamalarda söz diziminin birkaç varyasyonu vardır. Yinelenen zamanlanmış etkinlik başlatıcı cron ifadeleri, Quartz zamanlayıcı ile aynı söz dizimini kullanır.
Quartz cron ifadesi söz dizimi, Quartz'ın CronExpression belgelerinde açıklanmıştır.
Örnekler
Aşağıda birkaç örnek verilmiştir.
| Kullanım alanı | Saniye | Dakika | Saat | Ayın Günü | Ay | Haftanın Günü | Yıl |
|---|---|---|---|---|---|---|---|
| Her 24 saatte bir, gece yarısı çalıştırılır. | 0 |
0 |
0 |
? |
* |
* |
* |
| Her salı saat 06:00'da çalıştır | 0 |
30 |
19 |
? |
* |
3 |
* |
| Şubat ayı boyunca her saat, saat başını çeyrek geçe çalıştırılır. | 0 |
15 |
* |
? |
2 |
* |
* |
| Saatte bir kez çalıştırılır. | 0 |
0 |
* |
? |
* |
* |
* |
| Ocak-mart ayları arasında her 24 saatte bir, gece yarısı, ayın 1'ine en yakın hafta içi gününde çalıştırılır. | 0 |
0 |
0 |
? |
1-3 |
1W |
* |
| Şubat ayının ikinci perşembe günü, saatte bir, çeyrek geçe | 0 |
15 |
* |
? |
2 |
5#2 |
* |
| Şubat ayının son günü her saat, saat başından 15 dakika sonra çalıştırılır. | 0 |
15 |
* |
L |
2 |
? |
* |
| Her salı ve perşembe saat 06:00'da çalıştır | 0 |
30 |
19 |
? |
* |
3,5 |
* |
RecurringClockTimeScheduledEvent
RecurringClockTimeScheduledEvent başlatıcısında, cron ifade dizesi Time.RecurringClockTimeScheduledEvent.cronExpression alanına atanır.
Aşağıda, otomasyonu nisan ayının her çarşamba günü saat 20:00'de başlatan bir RecurringClockTimeScheduledEvent başlatıcı örneği verilmiştir:
starter<_>(structure, event = Time.RecurringClockTimeScheduledEvent) { parameter(Time.RecurringClockTimeScheduledEvent.cronExpression("0 0 20 ? 4 4 *")) }
RecurringSolarTimeScheduleEvent
RecurringSolarTimeScheduleEvent başlatıcısı iki parametre alır:
- A
SolarTimeStruct. cronExpression: Yalnızca ayın günü, ay, haftanın günü ve yıl alanlarından oluşan bircronifadesinin alt kümesi. Güneş saati, otomasyonun tam olarak ne zaman başlayacağını belirlediğinden saniye, dakika ve saat alanları atlanır.
Aşağıdaki örnek, nisan ayındaki her çarşamba günü gün doğumundan bir saat sonra otomasyonun başlamasını sağlayan bir başlatıcıdır:
starter<_>(structure, event = Time.RecurringSolarTimeScheduledEvent) { parameter( Time.RecurringSolarTimeScheduledEvent.solarTime( TimeTrait.SolarTimeStruct(SolarTimeType.Sunrise, Duration.ofHours(1)) ) ) parameter(Time.RecurringSolarTimeScheduledEvent.cronExpression("? 4 4 *")) }