@scheduled(cron = 0 0 1 * * * )

3 min read Aug 30, 2024
@scheduled(cron = 0 0 1 * * * )

Memahami @Scheduled(cron = "0 0 1 * * *") dalam Spring

@Scheduled(cron = "0 0 1 * * *") adalah anotasi yang digunakan dalam Spring untuk menjadwalkan eksekusi metode secara berkala. Anotasi ini memanfaatkan Cron Expression untuk menentukan kapan metode tersebut harus dieksekusi.

Cron Expression

Cron Expression adalah string yang terdiri dari enam field yang dipisahkan oleh spasi, yang mewakili:

  1. Second (0-59): Menentukan detik dalam menit.
  2. Minute (0-59): Menentukan menit dalam jam.
  3. Hour (0-23): Menentukan jam dalam hari.
  4. Day of Month (1-31): Menentukan hari dalam bulan.
  5. Month (1-12): Menentukan bulan dalam tahun.
  6. Day of Week (0-7): Menentukan hari dalam minggu (0 untuk Minggu, 1 untuk Senin, dst.).

*Memahami "0 0 1 * * "

Dalam contoh @Scheduled(cron = "0 0 1 * * *"), Cron Expression diuraikan sebagai berikut:

  • 0: Menentukan detik ke-0.
  • 0: Menentukan menit ke-0.
  • 1: Menentukan jam ke-1.
  • ****: Menentukan setiap hari dalam bulan.
  • ****: Menentukan setiap bulan dalam tahun.
  • ****: Menentukan setiap hari dalam minggu.

Artinya, metode yang didekorasi dengan @Scheduled(cron = "0 0 1 * * *") akan dieksekusi setiap hari pada pukul 01:00 pagi.

Contoh Penggunaan

Berikut contoh sederhana bagaimana menggunakan @Scheduled dengan Cron Expression:

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class ScheduledTask {

    @Scheduled(cron = "0 0 1 * * *")
    public void executeTask() {
        System.out.println("Task executed at 01:00 AM!");
    }
}

Catatan

  • Cron Expression sangat fleksibel dan memungkinkan Anda untuk menjadwalkan tugas dengan berbagai interval dan pola.
  • Anda dapat menggunakan simbol * untuk mewakili semua nilai yang mungkin dalam sebuah field.
  • Anda dapat menggunakan tanda tanya (?) untuk menentukan nilai field yang tidak relevan.
  • Anda dapat menggunakan tanda koma (,) untuk mencantumkan beberapa nilai untuk field.

Kesimpulan

@Scheduled(cron = "0 0 1 * * *") adalah cara mudah untuk menjadwalkan eksekusi metode secara berkala dalam Spring. Dengan memahami Cron Expression, Anda dapat mengontrol kapan tugas Anda akan dieksekusi dengan tepat.

Featured Posts