Penjadwalan tugas mengacu pada tugas melakukan secara otomatis berdasarkan titik waktu tertentu, interval waktu tertentu, atau sejumlah eksekusi tertentu.
Misalnya, kami ingin sistem mencadangkan file database setiap hari Minggu pukul 21:00, dan kami dapat menggunakan penjadwalan tugas untuk mengimplementasikannya. Untuk kenyamanan lebih, kita perlu secara otomatis memulai penjadwalan ini setelah Tomcat dimulai.
Ini API Timertask:
Di bawah ini adalah API Kelas Timer
Dalam contoh berikut, dua fungsi diimplementasikan:
1. Pantau startup dan shutdown wadah web Tomcat
2. Ketika wadah web dimulai, jadwal tugas mengalokasikan objek tugas, waktu dan periode.
Untuk memantau perubahan dalam wadah web, Anda perlu mendaftarkan pendengar di web.xml terlebih dahulu
<? Xml Version = "1.0" encoding = "UTF-8"?> <Web-app Versi = "3.0" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http:/www.w3.org/org/2001 =" http:/www.w3.org/org/p21 xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <!-Tambahkan pendengar TimerListener sebagai kelas adat, lihat di bawah ini-lihat di bawah ini-LIWING "> <! <listener-class> com.util.TimerListener </listener-class> </engeaner> <lplay-name> </tplay-name> <creendak-file-file> <creendak-filse> index.jsp </celcome-fils
Langkah kedua adalah mendefinisikan objek tugas, timertask dasar
Paket com.util; impor java.util.timer; import java.util.timertask;/** * 1. Tentukan objek tugas * jdk - objek tugas perlu mewarisi timerKask * */kelas public. persimpangan tabel dan data ke file SQL lokal "); }}
Langkah 3. Pantau perubahan dalam wadah web. Ketika wadah web dimulai, alokasikan waktu dan siklus untuk penjadwalan tugas. Kode berikut berisi beberapa contoh.
Paket com.util; import java.util.date; import java.util.timer; import javax.servlet.servletcontextEvent; import javax.servlet.servletcontextListener; timer public timerListener implements servletcontextListener {private static timer; / *** Dengarkan Web Container Close*/ @Override public void ContextDestroyed (ServletContextEvent scCe) {System.out.println ("Web Container Close"); timer.cancel (); } / *** Dengarkan startup wadah web* / @Override public void contextInitialized (servletContextEvent scet) {System.out.println ("Startup Web Container"); / *** Siapkan pengukur waktu*/ timer = timer baru (); System.out.println ("Timer sedang dalam persiapan dan mulai mengalokasikan waktu dan periode untuk penjadwalan tugas"); // Buat objek Tugas BackUpup Backup = DataBackUp baru (); // 1 Jadwal (Tugas TimerTask, Waktu Data) // Jadwalkan tugas yang ditentukan untuk memulai eksekusi pada waktu yang ditentukan // bulan harus dikurangi dengan satu //timer.schedule(Backup, tanggal baru (115,8,10,9,54,0)); // Jadwal 2 (Tugas TimerTask, tanggal pertama kali, periode panjang) // Jadwal (cadangan, tanggal baru (115,8,10,10,0,0), 2000); // 3SCHEDULE (Tugas TimerTask, Penundaan Panjang) // Jadwal (Tugas TimerTask, Penundaan Long) // Jadwal (Tugas TimerTask, Penundaan Long) // Jadwal (Tugas TimerTask, Penundaan Panjang) // Jadwal (Tugas TimerKask, Penundaan Long) // Jadwal (Tugas TimerKask, Penundaan Long)/Jadwal (TimerKask Tugas, Jadwal Long)/Jadwal Long) (TimerKask Tugas, Penundaan Long)/Jadwal (Timertask, Jadwal Long, Jadwal Long) // Jadwal Long (TimerTask), Long Delay // Jadwal (Timertask, jadwal Long), jadwal Long) (TimerTask Long), jadwal Long) (Timertask, jadwal Long)/Jadwal Long) (Timertask Tugas Long), Jadwal Long/ // Jadwal (Tugas TimerTask, Penundaan Panjang) //Timer.schedule(Backup, 5000); // 4 Jadwal (Tugas TimerTask, Penundaan Panjang, Periode Panjang) //Timer.schedule(Backup, 5000, 2000); // 5. Berangkat sekali tugas pada jam 9 pagi setiap hari //timer.schedule(Backup, tanggal baru (115,8,11,9,0,0), 24*60*60*1000); // 6. Berangkat sekali tugas pada jam 3 pagi setiap hari Sabtu //timer.schedule(Backup, tanggal baru (115,8,12,3,0,0), 7*24*60*60*1000); }} Dengan cara ini, ketika Tomcat dimulai, objek tugas akan mulai mengeksekusi sesuai dengan waktu dan siklus yang Anda yang dialokasikan.
Ringkasan: Gunakan timer untuk mengimplementasikan penjadwalan tugas, pertama -tama buat objek tugas yang ditentukan, seperti cadangan di sini; Kemudian instantiate timer, instantiate objek tugas, dan hubungi metode yang sesuai sesuai dengan persyaratan untuk mengalokasikan waktu dan periode ke objek tugas. Di atas adalah implementasi penjadwalan tugas. Adapun ketika timer ini dimulai, yaitu ketika timer mulai instantiating, itu perlu ditentukan berdasarkan situasi aktual. Misalnya, kode di atas adalah memulai timer setelah wadah web dimulai.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.