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 pemicu 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 akan menyebabkan penundaan setelah peristiwa matahari, dan nilai negatif akan menyebabkan pemicu diaktifkan sebelum peristiwa matahari.
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.
Pemicu 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,
secara opsional dikombinasikan dengan kondisi berbasis kalender.
cron ekspresi
Anda mungkin sudah tidak asing lagi dengan cron, perintah yang digunakan pada sistem Unix dan Linux
untuk menjadwalkan tugas berulang.
Pemicu peristiwa terjadwal berulang menggunakan sintaksis ekspresi penjadwalan yang
mirip dengan yang digunakan oleh cron, dan karena alasan ini, ekspresi penjadwalan
yang digunakan dengan pemicu ini disebut sebagai ekspresi cron.
Ada beberapa 'ragam' cron yang berbeda, dan beberapa variasi
sintaksis di seluruh implementasi ini. Ekspresi pemicu peristiwa terjadwal berulang cron
menggunakan sintaksis yang sama dengan penjadwal
Quartz.
Sintaksis ekspresi cron Quartz dijelaskan dalam dokumentasi untuk CronExpression Quartz.
Contoh
Berikut beberapa contoh untuk mengilustrasikannya.
| Kasus penggunaan | Detik | Menit | Jam | Tanggal | Bulan | Hari | Tahun |
|---|---|---|---|---|---|---|---|
| Jalankan setiap 24 jam, pada tengah malam | 0 |
0 |
0 |
? |
* |
* |
* |
| Jalankan pada pukul 06.00 setiap hari Selasa | 0 |
30 |
19 |
? |
* |
3 |
* |
| Dijalankan pada menit ke-15, setiap jam, selama bulan Februari | 0 |
15 |
* |
? |
2 |
* |
* |
| Jalankan sekali per jam | 0 |
0 |
* |
? |
* |
* |
* |
| Jalankan setiap 24 jam, pada tengah malam, dari Januari hingga Maret, pada hari kerja yang paling dekat dengan tanggal 1 setiap bulan | 0 |
0 |
0 |
? |
1-3 |
1W |
* |
| Pada hari Kamis kedua bulan Februari, sekali dalam satu jam, pada pukul 15 menit lewat | 0 |
15 |
* |
? |
2 |
5#2 |
* |
| Jalankan pada seperempat jam, setiap jam, pada hari terakhir bulan Februari | 0 |
15 |
* |
L |
2 |
? |
* |
| Jalankan pada pukul 06.00 setiap hari Selasa dan Kamis | 0 |
30 |
19 |
? |
* |
3,5 |
* |
RecurringClockTimeScheduledEvent
Dalam pemicu 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 pada 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 ekspresicronyang hanya terdiri dari kolom Hari dalam Sebulan, Bulan, Hari dalam Seminggu, dan Tahun. Waktu matahari menentukan waktu yang tepat saat otomatisasi akan dimulai, 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 *")) }