Üç 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 aralıklarla (saat ya da güneş olayına (ör. gün doğumu veya gün batımı) göre) başlayacak şekilde planlamanıza olanak tanır.
Ö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şlatıcı için parametre, aşağıdakilerden oluşan bir SolarTimeStruct
'dir:
type
, bu değerSolarTimeType.Sunrise
veyaSolarTimeType.Sunset
'dır.offset
, bu seçenek, başlangıç zamanını güneş enerjisi etkinliğine göre istediğiniz kadar değiştirebilmenizi sağlar. 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, her gün gün doğumundan 15 dakika önce otomasyonu başlatan bir başlangıçtı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 spesifik ölçütlere göre düzenli olarak çalışan otomasyonlar oluşturmanıza olanak tanır.
Time.RecurringClockTimeScheduledEvent
Bir veya daha fazla zaman ya da tarih koşuluna göre otomasyon planlamanıza olanak tanır.
Bu başlangıç, yinelenen bir otomasyonun programını belirtmek için Unix cron
yardımcı programı tarafından kullanılan söz dizimine 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 birkaç farklı "türü" ve bu uygulamalarda söz diziminin çeşitli varyasyonları vardır. Düzenli planlanan etkinlik başlatıcı cron
ifadeleri, Quartz zamanlayıcı ile aynı söz dizimini kullanır.
Quartz cron
ifade söz dizimi, Quartz'ın belgelerinde açıklanmaktadır.CronExpression
Ö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ü, gece yarısı 24 saatte bir çalıştırılır. | 0 |
0 |
0 |
? |
1-3 |
1W |
* |
Şubat ayının ikinci Perşembe günü, saat başı ve ç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ın. | 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ında her çarşamba 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 bircron
ifadesinin alt kümesi. Güneş saati, otomasyonun başlayacağı tam zamanı belirlediğinden saniye, dakika ve saat alanları atlanır.
Aşağıdaki örnek, Nisan ayının her çarşamba günü gün doğumundan bir saat sonra otomasyonun başlamasına neden olan bir başlangıçtır:
starter<_>(structure, event = Time.RecurringSolarTimeScheduledEvent) { parameter( Time.RecurringSolarTimeScheduledEvent.solarTime( TimeTrait.SolarTimeStruct(SolarTimeType.Sunrise, Duration.ofHours(1)) ) ) parameter(Time.RecurringSolarTimeScheduledEvent.cronExpression("? 4 4 *")) }