Tiga pemicu berbeda memungkinkan Anda menjadwalkan otomatisasi terlebih dahulu:
Yang pertama, Time.ScheduledTimeEvent,
memungkinkan Anda menjadwalkan otomatisasi untuk dimulai pada satu waktu yang tepat di masa mendatang, atau secara berulang, berdasarkan waktu jam atau peristiwa matahari (yaitu, matahari terbit atau terbenam).
Misalnya, starter ini memulai otomatisasi pada pukul 10:00 malam setiap hari:
starter<_>(structure, Time.ScheduledTimeEvent) { parameter(Time.ScheduledTimeEvent.clockTime(LocalTime.of(22, 0, 0, 0))) }
Atau, Anda dapat menentukan peristiwa waktu matahari, bukan waktu jam. Parameter
untuk jenis starter ini adalah
SolarTimeStruct
yang terdiri dari:
type, yang merupakanSolarTimeType.SunriseatauSolarTimeType.Sunset.offset, yang memungkinkan Anda menggeser waktu mulai relatif terhadap peristiwa matahari dengan jumlah waktu berapa pun. Nilai positif menimbulkan penundaan setelah peristiwa matahari, dan nilai negatif menyebabkan starter dipicu sebelum peristiwa matahari.
Contoh berikut adalah starter yang memulai otomatisasi 15 menit sebelum matahari terbit setiap hari:
starter<_>(structure, Time.ScheduledTimeEvent) { parameter( Time.ScheduledTimeEvent.solarTime( SolarTimeStruct(SolarTimeType.Sunrise, java.time.Duration.ofMinutes(-15)) ) ) }
Dua permulaan kedua adalah permulaan acara terjadwal berulang, yang memungkinkan Anda membuat otomatisasi yang berjalan secara berkala menurut kriteria yang lebih spesifik yang dapat mencakup kondisi berbasis waktu dan kalender.
Time.RecurringClockTimeScheduledEvent
memungkinkan Anda menjadwalkan otomatisasi berdasarkan satu atau beberapa kondisi waktu atau tanggal.
Starter ini menggunakan sintaksis yang mirip dengan yang digunakan oleh utilitas Unix cron untuk menentukan jadwal otomatisasi berulang.
Time.RecurringSolarTimeScheduledEvent memungkinkan Anda menjadwalkan otomatisasi berdasarkan waktu matahari terbit atau terbenam, secara opsional dikombinasikan dengan kondisi berbasis kalender.
Ekspresi cron
Anda mungkin sudah familier dengan cron, perintah yang digunakan pada sistem Unix dan Linux untuk menjadwalkan pekerjaan berulang.
Pemicu acara terjadwal berulang menggunakan sintaksis ekspresi penjadwalan yang
mirip dengan yang digunakan oleh cron, dan oleh karena itu, ekspresi penjadwalan yang digunakan dengan pemicu ini disebut sebagai ekspresi cron.
Ada beberapa 'rasa' cron yang berbeda, dan beberapa variasi sintaksis di seluruh implementasi ini. Ekspresi cron
pemicu acara terjadwal berulang menggunakan sintaksis yang sama dengan Quartz
scheduler.
Sintaks ekspresi Quartz cron dijelaskan dalam dokumentasi untuk CronExpression Quartz.
Contoh
Berikut adalah beberapa contoh untuk diilustrasikan.
| Kasus penggunaan | Detik | Menit | Jam | Hari dalam Bulan | Bulan | Hari dalam Seminggu | Tahun |
|---|---|---|---|---|---|---|---|
| Berlari setiap 24 jam, pada tengah malam | 0 |
0 |
0 |
? |
* |
* |
* |
| Berlangsung setiap hari Selasa pukul 06.00 | 0 |
30 |
19 |
? |
* |
3 |
* |
| Jalankan pada seperempat jam lewat, setiap jam, selama bulan Februari | 0 |
15 |
* |
? |
2 |
* |
* |
| Jalankan sekali setiap jam | 0 |
0 |
* |
? |
* |
* |
* |
| Beroperasi setiap 24 jam, pada tengah malam, dari Januari hingga Maret, pada hari kerja terdekat dengan tanggal 1 setiap bulannya | 0 |
0 |
0 |
? |
1-3 |
1W |
* |
| Pada hari Kamis kedua bulan Februari, sekali setiap jam, pada seperempat lewat | 0 |
15 |
* |
? |
2 |
5#2 |
* |
| Berlari setiap jam lewat seperempat jam, pada hari terakhir bulan Februari | 0 |
15 |
* |
L |
2 |
? |
* |
| Berlangsung pada pukul 06.00 setiap hari Selasa dan Kamis | 0 |
30 |
19 |
? |
* |
3,5 |
* |
RecurringClockTimeScheduledEvent
Dalam permulaan RecurringClockTimeScheduledEvent, string ekspresi cron ditetapkan ke bidang Time.RecurringClockTimeScheduledEvent.cronExpression.
Berikut ini adalah contoh starter RecurringClockTimeScheduledEvent yang memulai otomatisasi pada pukul 20.00, setiap hari Rabu di bulan April:
starter<_>(structure, event = Time.RecurringClockTimeScheduledEvent) { parameter(Time.RecurringClockTimeScheduledEvent.cronExpression("0 0 20 ? 4 4 *")) }
RecurringSolarTimeScheduleEvent
Starter RecurringSolarTimeScheduleEvent menggunakan dua parameter:
- Sebuah
SolarTimeStruct. cronExpression: Subset dari ekspresicronyang hanya terdiri dari bidang Hari dalam Bulan, Bulan, Hari dalam Seminggu, dan Tahun. Waktu matahari menentukan waktu persis dimulainya otomatisasi, sehingga kolom Detik, Menit, dan Jam dihilangkan.
Contoh berikut adalah pemicu yang menyebabkan otomatisasi dimulai satu jam setelah matahari terbit, setiap hari Rabu pada bulan April:
starter<_>(structure, event = Time.RecurringSolarTimeScheduledEvent) { parameter( Time.RecurringSolarTimeScheduledEvent.solarTime( TimeTrait.SolarTimeStruct(SolarTimeType.Sunrise, Duration.ofHours(1)) ) ) parameter(Time.RecurringSolarTimeScheduledEvent.cronExpression("? 4 4 *")) }