Üç farklı başlatıcı, otomasyonu önceden planlamanıza olanak tanır:
İlk seçenek olan Time.ScheduledTimeEvent, otomasyonu gelecekteki tek bir kesin anda veya düzenli olarak başlatacak şekilde planlamanıza olanak tanır. Bu planlama, saat zamanına ya da güneşle ilgili bir olaya (ör. gün doğumu veya gün batımı) göre yapılabilir.
Örneğin, bu başlatıcı otomasyonu her gün 22:00'da başlatır:
starter<_>(structure, Time.ScheduledTimeEvent) { parameter(Time.ScheduledTimeEvent.clockTime(LocalTime.of(22, 0, 0, 0))) }
Alternatif olarak, saat zamanı yerine güneş zamanı etkinliği belirtebilirsiniz. Bu tür başlangıç için parametre, aşağıdakilerden oluşan bir SolarTimeStruct'dir:
type,SolarTimeType.SunriseveyaSolarTimeType.Sunset.offset, güneş enerjisi etkinliğine göre başlangıç zamanını istediğiniz kadar değiştirebilirsiniz. Pozitif değerler, güneş etkinliğinden sonra gecikmeye neden olurken negatif değerler, başlatıcının güneş etkinliğinden önce tetiklenmesine neden olur.
Aşağıdaki örnek, otomasyonu her gün gün doğumundan 15 dakika önce başlatan bir başlatıcıdır:
starter<_>(structure, Time.ScheduledTimeEvent) { parameter( Time.ScheduledTimeEvent.solarTime( SolarTimeStruct(SolarTimeType.Sunrise, java.time.Duration.ofMinutes(-15)) ) ) }
Diğer iki başlangıç noktası, yinelenen planlanmış etkinlik başlangıç noktalarıdır. Bu başlangıç noktaları, hem zamana hem de takvime dayalı koşulları içerebilen daha ayrıntılı ö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şlangıç, yinelenen bir otomasyonun planı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ğumu veya gün batımı saatine göre otomasyon planlamanıza olanak tanır.
İsteğe bağlı olarak takvime dayalı bir koşulla birlikte kullanılabilir.
cron ifadeler
Tekrarlanan işleri planlamak için Unix ve Linux sistemlerinde kullanılan bir komut olan cron'a aşina olabilirsiniz.
Düzenli planlanmış etkinlik başlatıcıları, cron tarafından kullanılanla 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'nın farklı "çeşitleri" ve bu uygulamalarda çeşitli söz dizimi varyasyonları vardır. Yinelenen planlanmış 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 dokümanlarında 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 | 0 |
0 |
0 |
? |
* |
* |
* |
| Her salı saat 06:00'da çalıştır | 0 |
30 |
19 |
? |
* |
3 |
* |
| Şubat ayı boyunca her saat, saat başından 15 dakika sonra çalıştır | 0 |
15 |
* |
? |
2 |
* |
* |
| Saatte bir kez çalıştır | 0 |
0 |
* |
? |
* |
* |
* |
| Ocak-Mart ayları arasında, ayın 1'ine en yakın hafta içi günü, her gün gece yarısı çalıştırılır. | 0 |
0 |
0 |
? |
1-3 |
1W |
* |
| Şubat ayının ikinci Perşembe günü, saat başı, çeyrek geçe | 0 |
15 |
* |
? |
2 |
5#2 |
* |
| Şubat ayının son günü her saat başında 15 dakika geçe ç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şlangıç ifadesinde, cron ifade dizesi Time.RecurringClockTimeScheduledEvent.cronExpression alanına atanır.
Aşağıda, RecurringClockTimeScheduledEvent başlatıcıya
örnek verilmiştir. Bu başlatıcı, Nisan ayındaki her çarşamba günü saat 20:00'de otomasyonu başlatır:
starter<_>(structure, event = Time.RecurringClockTimeScheduledEvent) { parameter(Time.RecurringClockTimeScheduledEvent.cronExpression("0 0 20 ? 4 4 *")) }
RecurringSolarTimeScheduleEvent
RecurringSolarTimeScheduleEvent Başlatıcı iki parametre alır:
SolarTimeStruct.cronExpression: Yalnızca ayın günü, ay, haftanın günü ve yıl alanlarından oluşan bircronifadesinin alt kümesi. Otomasyonun tam olarak ne zaman başlayacağını güneş saati belirler. Bu nedenle, 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ına neden olan 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 *")) }