Saya mencoba menjalankan kode pada jadwal tetap, berdasarkan ekspresi Spring cron. Saya ingin kode dieksekusi setiap hari pada 1: 01: am. Saya mencoba ungkapan berikut, tetapi ini tidak cocok untuk saya. Apa yang salah dengan sintaks di sini?
@Scheduled(cron = "0 1 1 ? * *")
public void resetCache() {
// ...
}
Jawaban:
Coba dengan:
Di bawah ini Anda dapat menemukan contoh pola dari forum musim semi:
Ekspresi Cron diwakili oleh enam bidang:
(*)
berarti cocok dengan apa saja*/X
berarti "setiap X"?
("tidak ada nilai spesifik") - berguna ketika Anda perlu menentukan sesuatu di salah satu dari dua bidang di mana karakter diperbolehkan, tetapi tidak yang lain. Misalnya, jika saya ingin pelatuk saya menyala pada hari tertentu dalam sebulan (katakanlah, tanggal 10), tetapi saya tidak peduli pada hari apa dalam minggu itu, saya akan menempatkan "10" di hari- bidang bulan dan "?" di bidang hari-minggu.PS: Untuk membuatnya berfungsi, ingatlah untuk mengaktifkannya dalam konteks aplikasi Anda: https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html#scheduling- dukungan anotasi
sumber
Untuk penjadwal saya, saya menggunakannya untuk mengaktifkan jam 6 pagi setiap hari dan notasi cron saya adalah:
Jika Anda ingin 1: 01: pagi maka set ke
Kode lengkap untuk penjadwal
** SANGAT PENTING
Untuk memastikan ketepatan waktu pembakaran penjadwal Anda, Anda harus menetapkan nilai zona seperti ini (saya di Istanbul):
Anda dapat menemukan nilai zona waktu lengkap dari sini .
Catatan: Versi kerangka kerja Spring saya adalah: 4.0.7.RELEASE
sumber
<task:scheduled ref="paypalCronJob" method="runTask" cron="0 0 6 * * * ?"/>
??Anda dapat menggunakan anotasi metode Anda dengan
@Scheduled(cron ="0 1 1 * * ?")
.0 - untuk detik
1- 1 menit
1 - jam dalam sehari.
sumber
Sesuatu yang hilang dari jawaban gipinani
Ini akan dieksekusi pada 1.01 dan 13.01. Ini dapat digunakan ketika Anda perlu menjalankan pekerjaan tanpa pola beberapa kali sehari.
Dan atribut zona sangat berguna, ketika Anda melakukan penyebaran di server jauh. Ini diperkenalkan dengan pegas 4.
sumber
Satu hal yang saya perhatikan adalah: spring CronTrigger bukan cron. Anda mungkin berakhir dengan 7 parameter dalam ekspresi cron yang valid (yang dapat divalidasi di cronmaker.com) dan kemudian pegas tidak menerimanya. Sebagian besar kasus Anda hanya menghapus parameter terakhir dan semuanya berfungsi dengan baik.
sumber
Ekspresi spring cron untuk setiap hari 1: 01: pagi
@Jadwal (cron = "0 1 1? * *")
untuk informasi lebih lanjut, periksa informasi ini:
https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm
sumber