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, pemicu ini memulai otomatisasi pada pukul 22.00 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.Sunrise
atauSolarTimeType.Sunset
.offset
, yang memungkinkan Anda mengubah waktu mulai relatif terhadap peristiwa surya dengan jumlah waktu berapa pun. Nilai positif akan menyebabkan penundaan setelah peristiwa surya, dan nilai negatif akan menyebabkan starter dipicu sebelum peristiwa surya.
Contoh berikut adalah pemicu 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 pemicu kedua adalah pemicu acara terjadwal berulang, yang memungkinkan Anda membuat otomatisasi yang berjalan secara berkala sesuai dengan 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 cron
Unix untuk menentukan jadwal otomatisasi berulang.
Time.RecurringSolarTimeScheduledEvent
memungkinkan Anda menjadwalkan otomatisasi berdasarkan waktu matahari terbit atau terbenam,
opsionalnya dikombinasikan dengan kondisi berbasis kalender.
Ekspresi cron
Anda mungkin sudah familiar dengan cron
, perintah yang digunakan di sistem Unix dan Linux untuk menjadwalkan tugas 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.
Sintaksis ekspresi Quartz cron
dijelaskan dalam dokumentasi untuk
CronExpression
Quartz.
Contoh
Berikut beberapa contoh untuk mengilustrasikannya.
Kasus penggunaan | Detik | Menit | Jam | Hari dalam Bulan | Bulan | Hari dalam Seminggu | Tahun |
---|---|---|---|---|---|---|---|
Jalankan setiap 24 jam, pada tengah malam | 0 |
0 |
0 |
? |
* |
* |
* |
Jalankan pada pukul 06.00 setiap hari Selasa | 0 |
30 |
19 |
? |
* |
3 |
* |
Jalankan pada seperempat jam setelah setiap jam, setiap jam, selama bulan Februari | 0 |
15 |
* |
? |
2 |
* |
* |
Jalankan sekali per jam | 0 |
0 |
* |
? |
* |
* |
* |
Dijalankan setiap 24 jam, pada tengah malam, dari Januari hingga Maret, pada hari kerja terdekat dengan tanggal 1 setiap bulan | 0 |
0 |
0 |
? |
1-3 |
1W |
* |
Pada hari Kamis kedua bulan Februari, sekali setiap jam, pada seperempat lewat | 0 |
15 |
* |
? |
2 |
5#2 |
* |
Jalankan pada seperempat jam setelah pukul, setiap jam, pada hari terakhir bulan Februari | 0 |
15 |
* |
L |
2 |
? |
* |
Berjalan pada pukul 06.00 setiap hari Selasa dan Kamis | 0 |
30 |
19 |
? |
* |
3,5 |
* |
RecurringClockTimeScheduledEvent
Di starter RecurringClockTimeScheduledEvent
, string ekspresi cron
ditetapkan ke kolom
Time.RecurringClockTimeScheduledEvent.cronExpression
.
Berikut adalah contoh pemicu 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:
SolarTimeStruct
.cronExpression
: Subset ekspresicron
yang hanya terdiri dari kolom Day-of-Month, Month, Day-of-Week, dan Year. Waktu matahari menentukan waktu persis dimulainya otomatisasi, sehingga kolom Detik, Menit, dan Jam tidak ada.
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 *")) }