Memahami @scheduled(cron = "0 0/5 * * *") dalam Spring
Dalam konteks Spring, anotasi @scheduled
digunakan untuk menjadwalkan tugas-tugas secara berkala. Ekspresi cron "0 0/5 * * *" yang Anda berikan mendefinisikan jadwal yang akan menjalankan tugas setiap 5 menit. Mari kita bahas bagian-bagian dari ekspresi cron ini:
Pemahaman Ekspresi Cron
Ekspresi cron adalah string yang berisi enam field yang dipisahkan oleh spasi. Setiap field mewakili satu aspek dari jadwal tugas:
- Second (detik): Nilai antara 0 hingga 59.
- Minute (menit): Nilai antara 0 hingga 59.
- Hour (jam): Nilai antara 0 hingga 23.
- Day of Month (hari dalam bulan): Nilai antara 1 hingga 31.
- Month (bulan): Nilai antara 1 hingga 12.
- Day of Week (hari dalam minggu): Nilai antara 0 hingga 7 (0 dan 7 keduanya mewakili Minggu).
Menjelajahi 0 0/5 * * *
Mari kita uraikan ekspresi cron "0 0/5 * * *" :
- 0: Menjalankan tugas pada detik ke-0 setiap menit.
- 0/5: Menjalankan tugas setiap 5 menit, dimulai dari menit ke-0.
- *: Menjalankan tugas pada setiap jam.
- *: Menjalankan tugas pada setiap hari dalam bulan.
- *: Menjalankan tugas pada setiap bulan.
Contoh Implementasi
Berikut adalah contoh sederhana bagaimana menggunakan @scheduled
dengan ekspresi cron:
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledTask {
@Scheduled(cron = "0 0/5 * * *")
public void executeTask() {
System.out.println("Tugas terjadwal dijalankan pada " + new Date());
}
}
Kode di atas akan mencetak pesan "Tugas terjadwal dijalankan pada ..." ke konsol setiap 5 menit.
Kesimpulan
@scheduled(cron = "0 0/5 * * *")
memungkinkan Anda untuk menjadwalkan tugas dalam aplikasi Spring agar dijalankan setiap 5 menit. Memahami ekspresi cron adalah kunci untuk mengonfigurasi jadwal yang tepat untuk kebutuhan Anda.