1. Antarmuka umum:
1. Antarmuka Pekerjaan: Hanya ada satu metode untuk antarmuka ini
batal eksekusi (Konteks JobexecutionContext)
Pengembang mengimplementasikan antarmuka ini untuk menentukan tugas yang perlu dilakukan. Kelas JobExecutionContext menyediakan berbagai informasi tentang konteks penjadwalan.
2. JobDetail: Digunakan untuk menggambarkan kelas implementasi pekerjaan dan beberapa informasi statis lainnya
3. Pemicu: Jelaskan aturan pemicu waktu untuk memicu eksekusi pekerjaan
4. Kalender: Menentukan ruang waktu yang mungkin (atau tidak mungkin) memicu dalam hubungan dengan pemicu. Itu tidak menentukan waktu nyata pemicu, tetapi digunakan ketika jadwal normal perlu membatasi pemicu pemicu. Sebagian besar kalender berisi sepanjang waktu secara default, dan pengguna tidak termasuk waktu.
5. Penjadwal: Jalankan wadah dan gunakan penjadwalan untuk membuat instance penjadwal
2. Contoh kode:
1. Saat menggunakan Kuarsa, Anda perlu menerapkan antarmuka pekerjaan;
TestJob kelas publik mengimplementasikan Job {public void mengeksekusi (Konteks JobExecutionContext) melempar JobexecutionException {System.out.println ("Hello World! -" + new Date ()); // Lakukan lebih banyak ...}}2. Menjadwalkan [ini relatif sederhana, lihat saja kode]
Kelas Publik QuartzTest {public static void main (string args []) melempar jadwal, parseException {jobdetail jobdetail = jobbuilder.newjob (testjob.class) .withidentity ("testjob_1", "group_1") .build (); Pemicu pemicu = triggerBuilder .newtrigger () .withidentity ("trigger_1", "group_1") .startnow () .withsChedule (SimplesCheduleBuilder. JadwalFactory sf = stdschedulerFactory () baru; Penjadwal sched = sf.getscheduler (); screct.schedulejob (jobdetail, pemicu); sched.start (); }}Berikut adalah versi 2.2.1, lihat contoh dokumentasi resmi. Saya melihat bahwa beberapa buku referensi digunakan dalam versi yang lebih lama, jadi ada beberapa perbedaan. Banyak metode yang sudah usang, jadi lebih realistis untuk membaca dokumen secara langsung. Alamat situs web resmi kuarsa adalah: http://www.quartz-scheduler.org/
AKU AKU AKU. Contoh File Konfigurasi Quartz2.2.1
# File properti default untuk digunakan oleh stdschedulerFactory# untuk membuat instance penjadwal kuarsa, jika file# properti yang berbeda tidak secara eksplisit ditentukan. falseorg.quartz.scheduler.rmi.proxy: falseorg.quartz.scheduler.wrapjobexecutioninusertransaction: false org.quartz.threadpool.class: org.quartz.simpl.simplethreadpoolorg.quartz.threadpool.simpl.simplethreadpoolorg.quartz.threadpool.simpl.simplethreadpoolg.quartz.threadpool.simpl.simplethreadpoolg.quartz.threadpool 10org.quartz.threadpool.threadpriority: 5org.quartz.threadpool. # =============================================================================== # Configure JobStore #==================================================================================================================================== Konfigurasi, simpan data ke memori#org.quartz.jobstore.class: org.quartz.simpl.ramjobstore#konfigurasi permanen org.quartz.jobstore.class: org.quartz.impl.jdbcjobstore.jobstoretxorg.quartz.jobstore.driverdelegateClass: org.quartz.impl.jdbcjobstore.stdjdbcdelegateorg.impl.jdbcjtore.stdjdbcdelegateorg.impl org.quartz.jobstore.tableprefix: qrtz_org.quartz.jobstore.datasource: qzds #=================================================================================================== ======================================================================================================= Konfigurasikan DataSources#======================================================================================================================= org.quartz.datasource.qzds.driver: com.mysql.jdbc.driverorg.quartz.datasour ce.qzds.url: jdbc: mysql: // localhost: 3306/quartzdborg.quartz.datasource.qzds.user: rotorg.quartz.datasource.qzds.password: 123456org.quartz.datasource.qzds.password: 123456org.quartz.datasource.qzds.pass.passc:
4. Database terkait
Persistensi membutuhkan pembuatan tabel data kuarsa di database yang sesuai sebelumnya. Dalam paket rilis Kuarsa, Docs/DBTables memiliki skrip SQL yang sesuai dengan database yang berbeda.
Misalnya, ini MySQL:
Penjelasan Bidang Tabel Data: