Saya perlu menjadwalkan tugas untuk dijalankan pada interval waktu yang tetap. Bagaimana saya bisa melakukan ini dengan dukungan interval panjang (misalnya setiap 8 jam)?
Saya sedang menggunakan java.util.Timer.scheduleAtFixedRate
. Apakah java.util.Timer.scheduleAtFixedRate
mendukung interval waktu yang lama?
TimeUnit
berlaku untuk keduainitialDelay
danperiod
. Berjalan setiap 24 jam akan berakhir menjadi terlempar ketika tendangan DST di, tetapiTimeUnit
dariDAYS
tidak membiarkan Anda menentukan berbutir halusinitialDelay
. (Saya pikir implementasi ScheduledExecutorService internal mengkonversiDAYS
ke nanoseconds pula).Anda harus melihat ke Quartz itu kerangka java yang bekerja dengan edisi EE dan SE dan memungkinkan untuk mendefinisikan pekerjaan untuk mengeksekusi waktu tertentu
sumber
Coba dengan cara ini ->
Pertama-tama buat TimeTask kelas yang menjalankan tugas Anda, sepertinya:
kemudian di kelas utama Anda instantiate tugas dan menjalankannya secara berkala dimulai dengan tanggal yang ditentukan:
sumber
Gunakan Google Guava
AbstractScheduledService
seperti yang diberikan di bawah ini:}
Jika Anda memiliki lebih banyak layanan seperti ini, maka mendaftarkan semua layanan di ServiceManager akan baik karena semua layanan dapat dimulai dan dihentikan bersama. Baca di sini untuk lebih lanjut tentang ServiceManager.
sumber
Jika Anda ingin tetap
java.util.Timer
, Anda dapat menggunakannya untuk menjadwalkan pada interval waktu yang besar. Anda cukup melewati periode yang Anda inginkan. Periksa dokumentasinya di sini .sumber
Dua kelas ini dapat bekerja bersama untuk menjadwalkan tugas berkala:
Tugas Terjadwal
Jalankan Tugas Terjadwal
Referensi https://www.mkyong.com/java/how-to-run-a-task- periodically-in- java/
sumber
Jika aplikasi Anda sudah menggunakan Spring framework, Anda telah menjadwalkan dibangun di
sumber
Lakukan sesuatu setiap satu detik
sumber
Saya menggunakan fitur Spring Framework. ( Ketergantungan konteks musim semi atau maven).
ScheduledTask adalah antarmuka saya sendiri dengan eksekusi metode kustom saya, yang saya sebut sebagai tugas terjadwal saya.
sumber
Sudahkah Anda mencoba Penjadwal Musim Semi menggunakan anotasi?
Anda dapat melakukannya dengan xml juga.
sumber
servlet saya mengandung ini sebagai kode bagaimana menjaga ini dalam scheduler jika pengguna menekan menerima
sumber